python如何并发上千个请求批量发送邮件到第50个时报错如何处理?

最近在学习Python于是自己写了个小脚本测试使用smtp发送邮件,一切ok后出现如下错误:smtplib.SMTPDataError: (554, 'DT:SPM 163 smtp1,GdxpCgCnKA4anORdnVRZAA--.986S2 1575263258,please see http://mail.163.com/help/help_spam_16.htm?ip=114.253.3.243&hostid=smtp1&time=1575263258')
意思就是发不了,错误代码554,内容为……这是网易给返回来的错误内容,我们进去康康思路:诶,有意思了,我们是垃圾邮件,或者病毒了,哈哈,病毒不可能了,我的发送文本为一段文字,没有大量脚本,应该不是误杀病毒(以前看过WAF防火墙,那个真可以把有大量脚本标签的内容拦截),那就是垃圾邮件,但是以前写过java的smtp用的也是网易163没问题,那也不是邮件过于简单的问题,于是看了很多其他网友的反馈:https://blog.csdn.net/weixin_41789943/article/details/82348946这篇里面提到将message中放置的From与To的格式调整正确,而且必须填写真实邮箱然后就OK了,为什么?我们看看我之前此处的代码与成功后的:# 之前的
message['From'] = Header("********<*********@163.com>", 'utf-8')
message['To'] = Header("*******<*********@qq.com>", 'utf-8')
# 成功后的
message['From'] = Header("********<*********@163.com>")
message['To'] = Header("*******<*********@qq.com>")
区别是差一个规定编码的部分,我们好心规定编码还成了问题?我们把这个message的相关部分打出来康康:# 之前的
--===============1943985730==--
Content-Type: multipart/mixed; boundary="===============1943985730=="
MIME-Version: 1.0
From: ********<*********@163.com>
To: ********<*********@qq.com>
Subject: =?utf-8?b?UHl0aG9uIFNNVFAg6YKu5Lu25rWL6K+V?=
# 成功后的
--===============1943985730==--
Content-Type: multipart/mixed; boundary="===============1943985730=="
MIME-Version: 1.0
From: =?utf-8?q?***********=3C***********=40163=2Ecom=3E?=
To: =?utf-8?q?**********=3C**********=40qq=2Ecom=3E?=
Subject: =?utf-8?b?UHl0aG9uIFNNVFAg6YKu5Lu25rWL6K+V?=
我们看到这里心里大概就明白了两种写法的区别,在我们写上编码后我们发送到网易时它认为我们的邮箱名是无效的这是垃圾邮件(因为很多垃圾邮件就这么写,为了节省资源就给杀了),既然找到了问题的根本怎么解决就看自己的了~

我要回帖

更多关于 python如何并发上千个请求 的文章

 

随机推荐