Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用sendmessage()时,Python smtplib挂起_Python_Email_Smtp_Smtplib - Fatal编程技术网

调用sendmessage()时,Python smtplib挂起

调用sendmessage()时,Python smtplib挂起,python,email,smtp,smtplib,Python,Email,Smtp,Smtplib,我正在尝试使用smtplib从gmail帐户发送消息。我一直在shell中处理它,在我调用sendmail()之前,一切都很正常,而在我关闭终端之前,它一直冻结。没有错误,只是冻结。我的命令如下所示: >>> import smtplib >>> connection = smtplib.SMTP("smtp.gmail.com", 587) >>> connection.ehlo() >>> connection.star

我正在尝试使用smtplib从gmail帐户发送消息。我一直在shell中处理它,在我调用sendmail()之前,一切都很正常,而在我关闭终端之前,它一直冻结。没有错误,只是冻结。我的命令如下所示:

>>> import smtplib
>>> connection = smtplib.SMTP("smtp.gmail.com", 587)
>>> connection.ehlo()
>>> connection.starttls()
>>> connection.login("gmail_id", "gmail_pwd")
>>> connection.sendmail("addr_from", "addr_to", "message")

有人有这个问题吗?我尝试ping smtp.gmail.com并使用telnet smtp.gmail.com 587,两者都连接。

使用
连接。设置调试级别(1)
以启用跟踪/调试smtp会话


我刚才遇到了一个类似的问题,我曾尝试使用python3.7的
smtplib
登录我的gmail帐户,结果得到:

smtplib.SMTPAuthenticationError:(535,不接受b'5.7.8用户名和密码。有关详细信息,请访问\n5.7.8https://support.google.com/mail/?p=BadCredentials)

我用浏览器进入我的gmail收件箱,看到我收到了一封带有这条信息的安全警报电子邮件

不太安全的应用程序被阻止:谷歌阻止了你试图使用的应用程序 因为它不符合我们的安全标准。一些应用程序和设备 使用不太安全的登录技术,这会使您的帐户更安全 脆弱的您可以关闭这些应用的访问权限,我们将 建议,如果您想使用它们,请打开access,尽管 风险。如果没有,谷歌将自动关闭此设置 正在使用中

在我按照前面提到的电子邮件中的说明在我的gmail帐户上启用了不太安全的应用程序访问后,我尝试了
sendmail
仍然使用初始SMTP连接,但它只是挂起,没有输出

然后我继续退出最初的SMTP连接,并创建了一个新的连接(启用了post不太安全的应用程序),如下所示,它成功了

conn = smtplib.SMTP('smtp.gmail.com', 587)

启用跟踪/调试smtp会话,如中所述。如果“消息”确实是您要发送的,这就是问题所在。参数应该是格式良好的RFC5322消息。这不会试图回答问题,但可能有助于让OP发布实际有用的诊断。在2020年链接到Python2文档是不真实的。@TripleeeImho如果没有更好的诊断,解决OP问题是不可能的。我对“长时间的诊断交流评论”感到厌烦。阿门,兄弟。解决的办法是投票关闭,因为不清楚,并注意投票重新开放,一旦OP提供足够的信息。