Python3.7 发送邮件 报‘[WinError 10061] 由于目标计算机积极拒绝,无法连接’错误的解决方法

背景:

最近在练习Python 的邮件发送功能

照着教程写了一个简单的demo

结果运行时报如下错误:[WinError 10061] 由于目标计算机积极拒绝,无法连接。

如图:

解决路径如下:

Step1. 连不上,是不是因为没加端口呀,加上端口试一试

将连接语句改成:smtp.connect('smtp.163.com',25)

Ctrl+B 

呼呼  还报错 如下:

Step2. 加了端口还不行,又查了下,原来25端口被封,已更换为465端口,

遂将代码做如下修改:smtp.connect('smtp.163.com',25)

满心期待能够发送成功,结果现实又啪啪打脸,新的错误出现,如下图:

各种百度ing

Step3. 网上搜到下面一段话:

“上面说的是最普通的情况,但是不能忽略的是现在好多企业邮件是支持安全邮件的,就是通过SSL发送的邮件,这个怎么发呢?SMTP对SSL安全邮件的支持有两种方案,一种老的是专门开启一个465端口来接收ssl邮件,另一种更新的做法是在标准的25端口的smtp上增加一个starttls的命令来支持。”

个人没看太懂,附上文章链接:https://blog.csdn.net/diyiday/article/details/81504647

将代码修改如下:

smtp = smtplib.SMTP_SSL('smtp.163.com',465)

将smtp.connect的代码注释掉

Ctrl+B

Bingo! 邮件发送成功!

看到了最希望看到的画面:

注:使用SMTP_SSL连接大概是Python3.7的改进,没找到具体的资料,不敢下定论

如果您的Python3.7也遇到了跟我一样的问题

可以直接尝试Step3的操作

这里面能使用变量的话当然更好,不使用也没关系

还有一点就是,端口不是必需的,没有端口也可以成功发送邮件,已验证

原文地址:https://www.cnblogs.com/QianyuQian/p/12420406.html