代码如下(代码是从《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普通电脑)?
发送邮件有两种模式:
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(发送方邮箱地址,授权码)函数等等。。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。