因此,我已经尝试了至少5-10个例子在网上发送电子邮件,但我一直收到同样的错误。
Traceback (most recent call last):
File "C:/Users/alxu/Project/LogFilter.py", line 88, in ?
smtpserver = smtplib.SMTP("smtp.gmail.com",587)
File "C:\Python24\lib\smtplib.py", line 244, in __init__
(code, msg) = self.connect(host, port)
File "C:\Python24\lib\smtplib.py", line 292, in connect
for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):
socket.gaierror: (11004, 'getaddrinfo failed')我用的最后一个例子是这样的..。
import smtplib
to = 'mkyong2002@yahoo.com'
gmail_user = 'mkyong2002@gmail.com'
gmail_pwd = 'yourpassword'
smtpserver = smtplib.SMTP("smtp.gmail.com",587)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo
smtpserver.login(gmail_user, gmail_pwd)
header = 'To:' + to + '\n' + 'From: ' + gmail_user + '\n' + 'Subject:testing \n'
print header
msg = header + '\n this is test msg from mkyong.com \n\n'
smtpserver.sendmail(gmail_user, to, msg)
print 'done!'
smtpserver.close()我正在使用Python2.4.3。
编辑: McAfee是有主机入侵预防的,所以我每次尝试这样做都会阻止它。
发布于 2015-07-10 19:03:13
由于您是在公司代理的后面,所以无法直接连接到任何外部服务器,因此需要通过代理进行连接。在本例中,您试图连接到使用端口25或587的SMTP服务器。我假设您在不阻止SMTP端口的HTTP代理后面。如果您的公司代理阻塞这些端口,那么您就无法连接到服务器。
smtplib模块不包括通过代理连接到SMTP服务器的功能。作为解决办法,我编写了自定义类ProxySMTP,我已经发布了这里以及如何使用它的说明。
如果对你有用的话请告诉我。
发布于 2015-07-09 20:52:54
您的最后一个示例代码应该可以工作。您需要做的一件事是确保通过以下链接允许访问安全性较低的应用程序。
原因是google标记自动电子邮件脚本不太安全。你也应该意识到风险。如果你不需要的话,一定要改变这个设置。
https://stackoverflow.com/questions/31327442
复制相似问题