差点被这个邮件搞哭了,坑真的太多了!!!
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 = '173...5336@163.com'
# 邮箱授权码,非登陆密码
password = 'xxxx'
# 收件箱地址
to_addr = 'xxxx@qq.com'
# 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()