我正在尝试编写一个python3脚本,它将为我发送一封带有pdf附件的电子邮件。我正在关注https://bootstrap-tagsinput.github.io/bootstrap-tagsinput/examples/并创建了smtp服务器obj,如下所示:
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:01:18) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import smtplib
>>> server=smtplib.SMTP('smtp.gmail.com',587)
这是代码挂起的地方,我不知道为什么。 我尝试在5秒以下包含一个超时语句,它仍然会挂起超过5秒。
>>> import smtplib
>>> server=smtplib.SMTP('smtp.gmail.com',587,5)
ping smtp.gmail.com
Reply from 173.194.200.108: bytes=32 time=35ms TTL=41
Reply from 173.194.200.108: bytes=32 time=35ms TTL=41
telnet smtp.gmail.com 587
Trying 173.194.200.109...
Connected to smtp.gmail.com.
Escape character is '^]'.
我排除了以下内容: 我可以ping smtp.gmail.com,响应速度非常快。 已启用gmail上的IMAP。 我不认为这是IDE,我尝试了IDLE和VS Code,结果相同。 我也可以通过端口587 telnet到smtp.gmail.com,所以我很好。 这也不是在管理模式下运行IDE的问题。 我已经查看了smtplib的pydoc,看起来我的命令应该可行。
所以我不知道发生了什么。有没有人见过这个?
编辑:我在Python2上尝试过它,并且这种行为是一样的。 EDIT2:我使用wireshark进行了测试。我可以看到我和smtp邮件服务器之间的3way tcp握手。但之后没有沟通。答案 0 :(得分:0)
公司办公室内部的本地化防火墙阻止了这种情况的发生。