2016-04-19 145 views
1
#!/usr/bin/python 
import smtplib 
from email.mime.multipart import MIMEMultipart 
from email.mime.text import MIMEText 
from email.mime.base import MIMEBase 
from email import encoders 
fromaddr = "sender mail id" 
toaddr = "receiver mail id" 
msg = MIMEMultipart() 
msg['From'] = fromaddr 
msg['To'] = toaddr 
msg['Subject'] = "Test" 
body = "Test mail" 
msg.attach(MIMEText(body, 'plain')) 
filename = "foo.txt" 
attachment = open(r"F:\python\foo.txt", "rb") 
part = MIMEBase('application', 'octet-stream') 
part.set_payload((attachment).read()) 
encoders.encode_base64(part) 
part.add_header('Content-Disposition', "attachment; filename= %s" % filename) 
msg.attach(part) 
server = smtplib.SMTP('smtp.gmail.com', 587) 
server.starttls() 
server.login(fromaddr, "password") 
text = msg.as_string() 
server.sendmail(fromaddr, toaddr, text) 
server.quit() 

这个脚本工作正常,当我在我的本地系统上运行,但在私人网络上运行,它给了我一个错误。通过Python发送电子邮件

OSError:[Win Error 10051]尝试对无法访问的网络执行套接字操作。

回答

1

你可能想看看如果你从你的私人网络smtp.gmail.com接入端口587

专用网络管理员可能已经设置了网络阻塞端口587

尝试出站流量:

telnet smtp.gmail.com 587 

如果您遇到无法访问的网络错误,那肯定是网络问题。