开发者社区> 问答> 正文

使用Pyhton smtplib库发送邮件报错,ConnectionRefuse?400报错

代码如下(代码是从《Pyhton网络数据采集》书上抄过来运行的。): 

import smtplib
from email.mime.text import MIMEText

msg = MIMEText("The body of the email is here")

msg["Subject"] = "An Email Alert"
msg["From"] ="j***.com"
msg["To"] = "t***.com"

s = smtplib.SMTP("localhost")
s.send_message(msg)
s.quit()

报错如下:

疑问:

为何使用smtplib发送邮件可以不用传输发送方的邮箱密码?导致报错的原因是什么?是否因为运行的环境不对(win10普通电脑)?

展开
收起
爱吃鱼的程序员 2020-06-08 16:33:14 742 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    发送邮件有两种模式:

    1.直接连接邮件服务提供商(被发送者邮件所在服务商),然后发送邮件即可.好比你要给 xx@hotmail.com发邮件,直接链接微软的邮件服务发送邮件即可,一般会被微软邮件反垃圾邮件屏蔽.

    2.代理转发模式,登录你自己的邮件服务上如qq邮件服务商,发送到qq邮箱中转站,qq代理将邮件投递到微软邮件服务

    你代码使用的就是第一种模式.因此 smtpli.SMTP("你要发送的人注册的邮箱的提供商的地址")才能发送

     

    参考:

    1.http://www.cnblogs.com/leetao94/p/5460520.html

    2.http://blog.csdn.net/bravezhe/article/details/7659198

     

    不需要传输方的密码,但是要邮箱的授权码,而且要将邮箱的设置改一下,允许Pop3和SMTP的使用。而且程序不完整,没有login(发送方邮箱地址,授权码)函数等等。。

    2020-06-08 18:01:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载