首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Python通过gmail发送电子邮件

用Python通过gmail发送电子邮件
EN

Stack Overflow用户
提问于 2015-07-09 20:19:51
回答 2查看 1K关注 0票数 0

因此,我已经尝试了至少5-10个例子在网上发送电子邮件,但我一直收到同样的错误。

代码语言:javascript
运行
复制
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')

我用的最后一个例子是这样的..。

代码语言:javascript
运行
复制
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是有主机入侵预防的,所以我每次尝试这样做都会阻止它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-10 19:03:13

由于您是在公司代理的后面,所以无法直接连接到任何外部服务器,因此需要通过代理进行连接。在本例中,您试图连接到使用端口25或587的SMTP服务器。我假设您在不阻止SMTP端口的HTTP代理后面。如果您的公司代理阻塞这些端口,那么您就无法连接到服务器。

smtplib模块不包括通过代理连接到SMTP服务器的功能。作为解决办法,我编写了自定义类ProxySMTP,我已经发布了这里以及如何使用它的说明。

如果对你有用的话请告诉我。

票数 1
EN

Stack Overflow用户

发布于 2015-07-09 20:52:54

您的最后一个示例代码应该可以工作。您需要做的一件事是确保通过以下链接允许访问安全性较低的应用程序。

安全应用程序的google设置

原因是google标记自动电子邮件脚本不太安全。你也应该意识到风险。如果你不需要的话,一定要改变这个设置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31327442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档