【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 @   键上一指禅  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示