2020年2月21日 / 145次阅读 / Last Modified 2020年2月21日
Email
前面记录了一些用Python自制Email发送工具的技巧,现在真的准备自己做一个叫做maily的命令行发送小工具了。结果在测试的时候,遇到了很多莫名其妙的网络问题。
很多时候第一次邮件发送能够成功,后面的就全部失败;失败的原因各种各样,有 Network is unreachable,有 timeout,还有 ConnectionRefuse等等。我家的网络一直很正常呀!!
今天在一次测试的时候,突然反应过来问题的原因了,因为一次失败打印出来的信息,这个信息指向了smtp.qq.com的一个faq页面:https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=20022&&no=1000722,内容如下:
550 Connection frequency limited
出错原因:该服务器IP的发信频率超过腾讯邮箱限制。 腾讯邮箱对来自相同IP的外部发信服务器有一定的频率限制:
改善建议:如果您是该服务器IP的管理员,请暂停该服务器IP的发信,稍后降低频率重新尝试发信。 如果您是个人邮箱用户,请向您的电子邮件提供商报告此情况。
因此,我认为出现的各种网络奇奇怪怪的问题,都是上面的原因。
也许是因为运营商分配的IP地址,并不是独享的,这个可能性的存在的,多层NAT技术上也没有什么特别的困难。
也许SMTP服务器提供商也会判断连接IP和客户端ID,非知名客户端ID在网络边缘侧发起的连接,危险性更高。
后面只能在云端的服务器上做做测试看看效果,那里的IP是被我独自享用的,再无别的方法了。不过,我发现在python的interact界面,一行行代码输入,直接执行smtplib.SMTP_SSL接口的成功率更高。
-- EOF --
本文链接:https://www.pynote.net/archives/1813
《自制SMTP发邮件工具遇到的网络问题》有1条留言
©Copyright 麦新杰 Since 2019 Python笔记
缓解这个问题的,也许可以试试587端口,有可能是465端口的支持不太到位。 [ ]