python有内置的模块支持发送邮件email,smtp。

我这里是开启了163邮箱的smtp授权,所以可以这样第三方登录。

发现一个问题,格式化发送人收件人地址的时候必须加<>,否则编码会报错。

def format_address(s):
    name, addr = parseaddr(s)
    return formataddr((Header(name, 'utf-8').encode(), addr))


from_address = '发件人账号'
# 授权码,不是真正的密码
pwd = '授权码'
to_address = '收件人的账号'
smtp_server = 'smtp.163.com'
msg = MIMEText('测试消息', 'plain', 'utf-8')
msg['From'] = format_address('发送人<{}>'.format(from_address))
msg['To'] = format_address('管理员<{}>'.format(to_address))
msg['Subject'] = Header('运行状态', 'utf-8').encode()
server = smtplib.SMTP(smtp_server, 25)
server.login(from_address, pwd)
server.sendmail(from_address, [to_address], msg.as_string())
server.quit()

上面发送的是纯文本,如果要发送html页面,只需要在构造msg的时候传参修改下即可,

msg = MIMEText(data, 'html', 'utf-8')

data为html信息

python 发邮件

相关文章:

  • 2021-10-06
  • 2021-06-03
  • 2022-12-23
  • 2021-09-18
猜你喜欢
  • 2022-12-23
  • 2021-10-21
  • 2022-02-05
相关资源
相似解决方案