通过Python发送电子邮件

时间:2016-04-19 04:46:48

标签: python-3.x

#!/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()

当我在本地系统上运行时,此脚本运行正常,但在私有网络上运行时,它会给我一个错误。

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

1 个答案:

答案 0 :(得分:1)

您可能需要查看您是否可以通过您的专用网络访问端口587上的smtp.gmail.com

专用网络管理员可能已设置网络以阻止端口587上的出站流量

尝试:

telnet smtp.gmail.com 587

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