【Python】邮件发送-初识yagmail库

import yagmail
import traceback
from logzero import logger


def send_mail(receiver=None, carbon_copy=None, subject=None, content=None, attachments_report_name=None):
    """
    发送邮箱模块
    :param receiver: 收件人
    :param carbon_copy: 抄送人
    :param subject:标题
    :param content:正文
    :param attachments_report_name:附件
    """
    try:
        # 连接邮箱服务器
        # 注意:若使用QQ邮箱,则password为授权码而非邮箱密码;使用其它邮箱则为邮箱密码
        # encoding设置为GBK,否则中文附件名会乱码
        yag = yagmail.SMTP(user="*****@qq.com", password="********", host="smtp.qq.com", encoding='GBK')

        # 收件人、抄送人、标题、正文、附件(若多个收件人或多个抄送人或多个附件,则可使用列表)
        yag.send(to=receiver, cc=carbon_copy, subject=subject, contents=content, attachments=attachments)
        # 可简写:yag.send("****@163.com", "****@163.com", subject, contents, report)

        logger.info(f"测试报告邮件发送成功!【邮件标题:{subject}】【邮件附件:{attachments}】【收件人:{receiver}】【抄送人:{carbon_copy}】")
    except:
        logger.error(f"测试报告邮件发送失败!【邮件标题:{subject}】【邮件附件:{attachments}】【收件人:{receiver}】【抄送人:{carbon_copy}】")
        logger.error(traceback.format_exc())  # 打印异常


if __name__ == "__main__":
    # 测试 发送成功
    # send_mail("*****@qq.com", "*****@qq.com", "邮件_标题", "邮件_正文", "demo_test.txt")
    # 测试 发送失败
    send_mail("*****@qq.com", "*****@qq.com", "邮件_标题", "邮件_正文", "")

 

posted @ 2022-09-14 15:28  键上一指禅  阅读(33)  评论(0)    收藏  举报