yhw-miracle

python实现邮件发送

痛点就是起点 writed in

本文为痛点就是起点原创文章,可以随意转载,但需注明出处。

在爬虫开发中,爬虫运行过程中遇到异常或服务器遇到问题时,我们可以采用发送邮件,及时报告爬虫程序当前故障问题。

邮件发送协议是SMTPpython内置对SMTP 的支持,可以发送纯文本邮件、HTML 邮件以及带附件的邮件。python中对SMTP支持有 smtpplibemail模块,email 负责构造邮件,smtplib负责发送邮件。

  • 以网易的邮件发送服务器为例smtp.163.com,需要开启网易邮箱的smtp功能。

  • 构造纯文本邮件。

from email.mime.text import MIMEText
msg = MIMEText("你好,世界!", "plain", "utf-8")

构造html邮件。

from email.mime.text import MIMEText
msg = MIMEText("<a href='https://痛点就是起点.win/'>my blog</a>", "html", "utf-8")
  • 设置发件人信息、收件人信息和邮件主题信息。
from_addr = "yhw_software@163.com"
password = "********"

to_addr = "yhw_software@qq.com"

smtp_server = "smtp.163.com"

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

完整代码如下所示。

# 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 = "yhw_software@163.com"
password = "*********"

to_addr = "yhw_software@qq.com"

smtp_server = "smtp.163.com"

msg = MIMEText("晚上好!", "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()

python 邮件发送
知识总结

欢迎关注,我们一起进行认知迭代!


痛点就是起点

© 2016 - 2020 基于 jekyll | Github Pags | iconfont By yhw-miracle