第三方库“zmail”和“yagmail”可实现邮件发送。在实际使用对比zmail比yagmail更简洁。使用zmail,无需登录OA邮箱,便可完成邮件的发送及附件的自动加载。
import zmaildef send_zmail(sender, sender_password, addressee, host, port=465, inspect_smtp_pop=False):# 使用邮件服务商的邮箱,代码中的"password"要填写"授权码",也有叫邮件第三方客户端独立密码。# 同时出现content_text和content_html时,只显示content_htmlmes = {'subject': 'zmail库邮件测试', # 主题'content_text': '邮件内容:\n这是第一段', # 正文内容(纯文本形式)'content_html': r'<h1 style="color:red">一级标题</h1><a href="https://www.baidu.com"><h2 style="color:green">二级标题点击查看更多<<</h2><p></a><img src="D:\zhuomian\demo\tom.gif" alt="测试图片显示" title="牛牛牛" width="100" height="150"></p>','attachments': [r'D:\zhuomian\test_file\学习培训导入.xlsx', r'D:\zhuomian\导入文件\批量导入模板.xlsx',r'D:\zhuomian\test_file\345.txt'], # 附件}try:server = zmail.server(username=sender, password=sender_password, smtp_host=host, pop_port=port)if inspect_smtp_pop: # 测试SMTP/POP连接print('SMTP连接成功') if server.smtp_able() else print('SMTP连接失败')print('POP连接成功') if server.pop_able() else print('POP连接失败')try:server.send_mail(recipients=addressee,mail=mes,# cc='', # 密送人员,列表或字符串)except Exception as e:print(f'发送失败:{e}')except Exception as e:print(f'登录失败:{e}')