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", "邮件_标题", "邮件_正文", "")