Python用 smtplib在阿里云服务器发送邮件(1ni)

差点被这个邮件搞哭了,坑真的太多了!!!

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()


猜你喜欢

转载自blog.csdn.net/qq_40952927/article/details/80521192