guguobao

发送邮箱的协议是STMP,python内置对SMTP支持,可以发送纯文本邮件,HTML邮件和带附件邮件。python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件

  • 在使用前,先申请一个163邮箱,开启SMTP功能,采用网易的电子邮件服务器smtp.163.com

先构造纯文本邮件

from email.mime.text import MIMEText
msg = MIMEText('python爬虫运行异常','plain','utf-8')
  • 构造MIMEText对象需要3个参数
    • 邮件正文
    • MIME的subtype,传入'plain'表示纯文本,最终的MIME就是“text/plain”
    • 设置编码格式,UTF-8编码保证多语言兼容性

下面是完整的代码

#coding:utf-8
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr

import smtplib

def _format_addr(s):
    name, addr = parseaddr(s)
    return formataddr((Header(name, 'utf-8').encode(), addr))
#发件人地址
from_addr = 'xxxxxxxx@163.com'
#邮箱密码
password = 'pass'
#收件人地址
to_addr = 'xxxxxxxx@qq.com'
#163网易邮箱服务器地址
smtp_server = 'smtp.163.com'
#设置邮件信息
msg = MIMEText('Python爬虫运行异常,异常信息为遇到HTTP 403', 'plain', 'utf-8')
msg['From'] = _format_addr('一号爬虫 <%s>' % from_addr)
msg['To'] = _format_addr('管理员 <%s>' % to_addr)
msg['Subject'] = Header('一号爬虫运行状态', 'utf-8').encode()
#发送邮件
server = smtplib.SMTP(smtp_server, 25)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()

相关文章:

  • 2021-08-15
  • 2021-11-08
  • 2022-12-23
  • 2021-11-25
  • 2022-02-01
  • 2021-11-24
  • 2021-07-16
  • 2021-04-20
猜你喜欢
  • 2021-06-07
  • 2022-02-09
  • 2022-01-07
  • 2021-08-06
  • 2022-02-11
  • 2022-12-23
相关资源
相似解决方案