自制SMTP发邮件工具遇到的网络问题

2020年2月21日 / 55次阅读 / 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的外部发信服务器有一定的频率限制:        

  • 1、超过每分钟发信量限制,此IP地址被禁止发信若干分钟。        
  • 2、超过每小时发信量限制,此IP地址被禁止发信若干小时。        
  • 3、超过每日发信量限制,此IP地址本日内禁止再发信。       
  •   4、以上频率限制数值属于腾讯邮箱保密数据,恕不公开。  

改善建议:如果您是该服务器IP的管理员,请暂停该服务器IP的发信,稍后降低频率重新尝试发信。                如果您是个人邮箱用户,请向您的电子邮件提供商报告此情况。

因此,我认为出现的各种网络奇奇怪怪的问题,都是上面的原因。

也许是因为运营商分配的IP地址,并不是独享的,这个可能性的存在的,多层NAT技术上也没有什么特别的困难。

也许SMTP服务器提供商也会判断连接IP和客户端ID,非知名客户端ID在网络边缘侧发起的连接,危险性更高。

后面只能在云端的服务器上做做测试看看效果,那里的IP是被我独自享用的,再无别的方法了。不过,我发现在python的interact界面,一行行代码输入,直接执行smtplib.SMTP_SSL接口的成功率更高。

-- EOF --

本文链接:https://www.pynote.net/archives/1813

留言区

《自制SMTP发邮件工具遇到的网络问题》有1条留言

电子邮件地址不会被公开。 必填项已用*标注

  • 麦新杰

    缓解这个问题的,也许可以试试587端口,有可能是465端口的支持不太到位。 [回复]


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top