gpt4 book ai didi

python - 通过 python 应用程序通过 gmail 发送电子邮件

转载 作者:行者123 更新时间:2023-11-28 16:49:16 25 4
gpt4 key购买 nike

如标题所示,我在通过 python 应用程序通过我的 gmail 帐户发送电子邮件时遇到问题。我在网上搜索了解决方案,但似乎没有任何解决方案,我想我可以在这里问。我的代码如下:

FROMADDR = "myemail@gmail.com"
LOGIN = FROMADDR
PASSWORD = "mypass"
TOADDRS = "varis81@hotmail.com"
msg = "Test message"
server = smtplib.SMTP('smtp.gmail.com', 587)
server.set_debuglevel(1)
server.ehlo()
server.starttls()
server.login(LOGIN, PASSWORD)
server.sendmail(FROMADDR, TOADDRS, msg)
server.quit()
print "E-mail succesfully sent"

我收到消息:

socket.error: [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

我尝试了不同的端口,但它也不起作用。我也尝试了 hotmail,但它导致了同样的问题。我在使用 PyDev 在 Eclipse 上开发的 Windows 7 机器上使用 Python 2.7(不要问 :))。

任何帮助都会很棒!提前谢谢你。

最佳答案

我在我的一台服务器上使用相同的结构。我的代码如下。

唯一的区别是在 '.starttls()` 之后额外的 .ehlo()。这应该不是问题;来自 RFC :

5.2 Result of the STARTTLS Command

The client SHOULD send an EHLO command as the first
command after a successful TLS negotiation.

根据 RFC,如果客户端在 starttls 之后未发送 ehlo,则服务器不应切断连接,但 Google 可能对其 SMTP 服务器有更多限制。我会先检查一下。 (我已经看到供应商收紧此类条件以减少垃圾邮件,例如,请参阅 Mailinator's 2007 writeup。)

它也可能是过滤端口 - 尝试在 REPL 中运行代码并确认哪一行异常,如果是 connect() 你就会知道它是网络。如果在之后,则可能是您使用了 smtplib.

值得注意的是,我偶尔也遇到过不正常的关机,导致 .close() 周围出现 try/except。

import smtplib
s = smtplib.SMTP()
s.connect("smtp.gmail.com")
s.ehlo()
s.starttls()
s.ehlo()
s.login("from@gmail.com", "frompass")
s.sendmail("fromname@gmail.com", toAddr, bytes)
try:
s.close()
except: pass

关于python - 通过 python 应用程序通过 gmail 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9717019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com