python 3 发送邮件其实很简单,不过有很多需要注意的地方:
1.比如使用网易邮箱开启了应用密码,则应该使用应用密码
2.尽可能使用 SSL,但是使用 SSL 需要注意配置
smtplib.SMTP_SSL(smtp_server,smtp_port)
否则会报错
3.网易邮箱或一些邮箱必须加上
msg['From'] =
msg['To'] =
msg['Subject'] =
否则会发送不成功
完整代码如下:
def send_email(self,ticket_id,user=None):
def format_addr(s):
name, addr = parseaddr(s)
return formataddr((Header(name, 'utf-8').encode(), addr))
from_addr =
password =
smtp_server =
to_addr =
smtp_port = 465
msg = MIMEText("hello,world", 'plain', 'utf-8')
# 发送邮箱地址
msg['From'] = format_addr("python 开发者" % from_addr)
# 收件箱地址
msg['To'] = to_addr
# 主题
msg['Subject'] = "测试测试" % ticket_id
server = smtplib.SMTP_SSL(smtp_server,smtp_port)
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, to_addr, msg.as_string())
server.quit()