Python通过smtplib 和email模块发送邮件

本文介绍了Python中使用smtplib和email模块发送邮件的方法。smtplib是一个内置库,负责处理SMTP协议,而email模块则提供创建邮件消息的功能,常用于程序自动发送告警信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. smtplib 和email介绍

smtplib是一个 Python 库,用于使用简单邮件传输协议(SMTP)发送电子邮件。
smtplib是内置模块; 我们不需要安装它。 它抽象了 SMTP 的所有复杂性。
email也是一个内置模块。一般我们使用他的

功能:通过邮件服务器向管理员发送程序运行的告警信息。

2.源代码实例

# 定义一个函数,当系统出现问题时,向管理员发送邮件。
def send_waring_mail(error_msg, title):
    # 创建邮箱连接,采用匿名发送邮件的方法,不需要使用登录名和密码,发送邮箱的名称可以自定义,不需要exchange服务器创建。
    smtp = smtplib.SMTP()
    try:
    # 尝试连接exchange邮箱服务器,因为我们的邮箱服务器允许匿名发送,所以不需要用户名和密码,公网服务器都是需要密码认证的。
        smtp.connect('192.168.2.10', 587)
    except Exception as e:
        logging.critical('邮件服务器连接失败,请检查邮箱服务器和网络!')
        logging.critical(e)
        return
   # 构建msg信息,这个信息是邮件的主体部分,将外部传入的error_msg和title信息通过字符串的format方法构造进邮件主体模块。
    mail_msg = """
    管理员您好:
        跟踪系统出现问题,问题消息如下:
        {error}
        请检查。<br/>
        对应excel跟踪文件为:{title}
    """.format(error=error_msg, title=title)
    # 生产msg编码,邮件的格式,以及编码方法,这个是邮件内容
    msg = MIMEText(mail_msg, 'html', 'utf-8')
    msg['Subject'] = "DOM Tracing ERROR message"  # 邮件的主题,就是标题
    msg['From'] = 'CQ_DOM_OIL@dhcp.com' # from是邮件发送方,就是发件人
    try:
    # sendmail函数有包括发件人,收件人,以及信息流。收件人可以是列表
        smtp.sendmail('CQ_OIL@dhcp.com', 'gang.zhou@dhcp.com', msg.as_string())
        logging.info("向管理员发送警告邮件成功。")
    except Exception as e:
        logging.warning("向管理员发送邮件失败,请检查其邮箱配置!")
        logging.warning(e)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值