差点被这个邮件搞哭了,坑真的太多了!!!
1.要记得打开163邮箱的服务
具体方法 设置=》左下角的客户端授权密码(那时候就要开启了,会让你输入密码,这个密码不能和登录的密码相同
代码里也是这个客户端密码,不是登录密码)
2.你的IP可能被禁了!!!
一开始试了很多的代码,都是报错(554 SPM)说我发送了垃圾邮件,后来我就在内容里面加了很多字,也查了很多方法,都没用,哈哈哈哈,然后真的受不了了,就去找网易的客服了,说实话有点感动,她告诉我 是我的IP被禁了,是一个叫spamhaus反垃圾组织把我IP拉黑了,一脸懵逼,因为是学校里的,可能被别人给搞砸了吧,具体我也不清楚,被禁的话,自行百度就好。
3.后来我想,我还有服务器啊!反正最终代码都是上服务器的,所以就上服务器试试,服务器IP总不会被禁了吧?
后来把代码贴进去,还是没用,因为阿里不支持
server = smtplib.SMTP(smtp_server, 25)
跑的时候就没反应,也没报错(很不友好)
只需要 改成 server = smtplib.SMTP_SSL(smtp_server, 465)
这样就可以了
4.的确是发送了,但是没有啊!!!我都没提示,去163看,说我已经发送了
去QQ邮箱看,他把我的邮件检测为垃圾邮件!!!
可能是字数太少,太simple了,后来字数多一点就OK了
上代码
# *_*coding:utf-8 *_* import smtplib from email.mime.text import MIMEText msg = MIMEText('hello', 'plain', 'utf-8') # 发送邮箱地址 from_addr = '[email protected]' # 邮箱授权码,非登陆密码 password = 'xxxx' # 收件箱地址 to_addr = '[email protected]' # smtp服务器 smtp_server = 'smtp.163.com' # 发送邮箱地址 msg['From'] = from_addr # 收件箱地址 msg['To'] = to_addr # 主题 msg['Subject'] = 'Hey' server = smtplib.SMTP_SSL(smtp_server, 465) # 假如不是阿里的话 # server = smtplib.SMTP(smtp_server, 25) server.login(from_addr, password) server.sendmail(from_addr, [to_addr], msg.as_string()) server.quit()