python - yagmail 发送邮件
1.使用前先要安装 yagmail
pip install yagmail -i https://pypi.douban.com/simple
官方文档:https://github.com/kootenpv/yagmail
2.使用QQ邮箱发送邮件,使用的是授权码,需要先到QQ邮箱申请授权码。
邮箱设置-->账户
3.yagmail 模块发送邮件更加简单,四行代码
# -*- encoding: utf-8 -*- import yagmail def E_mali_jj(fr,key,etype,text,to,attachments): ''' :param fr: 发送邮箱 :param key: 授权码 :param etype: 邮件类型 :param text: 文本 :param to: 接受邮箱 :param attachments: 附件文件地址,空则填'' :return: ''' # 链接邮箱服务器 yag=yagmail.SMTP(user=fr,password=key,host=etype) # 邮箱正文 contents=[text] # 发送邮件 yag.send(to=to,subject='邮件标题',contents=contents, attachments=attachments) #subject 标题 yag.close() print("邮件发送成功") if __name__ == '__main__': E_mali_jj("123456@qq.com", "gwheybuaamrqbihh", 'smtp.qq.com', "邮件正文内容", "123456@qq.com", "E:\\proto_code\\Roshan-01-microscript-proto_test-master-src\\src\\report\\report.html")
3.1发送邮件给多个人
邮件发送给多个人,将接受的邮箱放在列表中即可
# 发送邮件 yag.send(to = ['123456@qq.com','678910@qq.com', '10111213@qq.com'], subject='subject', contents = contents, attachments="")
4.发送邮件带附件
# -*- coding:utf-8 -*- import yagmail yag = yagmail.SMTP( user="157540957@qq.com", password="kayzilfyziulbhbb1", host='smtp.qq.com') """ user: 发送的邮箱 password: 授权码 """ # 邮箱正文 contents = ['测试发送邮件'] # 附件 attachments = "D:\\code\\0906\\api_test009\\report\\report.html" # 发送邮件 try: yag.send(to = '3437871062@qq.com', subject='subject', contents = contents, attachments=attachments) except Exception as e : print("Error: 抱歉!发送邮件失败。", e) """ to : 接收者 subject : 邮件主题 contents: 正文 attachments: 附件 """ yag.close()
5.封装
# -*- coding:utf-8 -*- import yagmail def send(user, password, receiver): yag = yagmail.SMTP( user=user, password=password, host='smtp.qq.com') """ user: 发送的邮箱 password: 授权码 """ # 邮箱正文 contents = ['测试发送邮件'] # 附件 attachments = "D:\\code\\0906\\api_test009\\report\\report.html" # 发送邮件 try: yag.send(to=receiver, subject='subject', contents = contents, attachments=attachments) except Exception as e : print("Error: 抱歉!发送邮件失败。", e) """ to : 接收者 subject : 邮件主题 contents: 正文 attachments: 附件 """ yag.close() if __name__ == '__main__': send("123456@qq.com", "kayzilfyziulbhbb1", "45678910@qq.com")
作者:小林同学_Scorpio
本博客所有文章仅用于学习、分享和交流目的,欢迎非商业性质转载。
博主的文章没有高度、深度和广度,只是凑字数,做笔记。由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用参考、引用、抄袭、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个无耻的文档搬运工!