前言本篇介绍使用zmail发各种格式的邮件,并运行成功的代码,小伙伴们只需更换自己的邮箱就可以运行起来了 content_text发送纯文本先从最简单的发送纯文本的邮件开始,调通发送邮件的代码。 以腾讯的企业邮箱为例,smtp_host是发送邮箱的smtp服务地址,不同的邮箱不太一样。 import zmail
''' 作者:上海-悠悠 QQ交流群:717225969 ''' mail = { 'subject': '邮件主题:Success!', # Anything you want. 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ', # Anything you want. }
server = zmail.server('yourname@x', 'yourpassword', smtp_host="smtp.exmail.qq.com", smtp_port=465) server.send_mail('2833404xx@qq.com', mail) # 接收着 从上面代码看出,发送邮件的代码也就2句,我们只需关注三个参数 
content_html发送html正文如果发送的正文是html格式的,那就用content_html参数,注意content_text和content_html只能二选一 平常生成的html测试报告,需要发送到邮箱,可以用open函数去读取html正文内容 import zmail
''' 作者:上海-悠悠 QQ交流群:717225969 '''
# html报告地址D:\\aaaa\\result.html
with open('D:\\aaaa\\result.html', 'r', encoding="utf-8") as f: content_html = f.read()
mail = { 'subject': '邮件主题:Success!', # Anything you want. # 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ', # Anything you want. 'content_html': content_html }
server = zmail.server('yourname@x', 'yourpassword', smtp_host="smtp.exmail.qq.com", smtp_port=465) server.send_mail('283340479@qq.com', mail) 也可以自己写html正文内容 content_html = ''' <h1>这是一级标题</h1> <h2>这是二级标题</h2> <h3>这是三级标题</h3> <p>这段是有个段落,可以写很多你要写的内容</p> <a href="https://www.cnblogs.com/yoyoketang/">点我,可以跳转到我的博客</a> '''
mail = { 'subject': '邮件主题:Success!', # Anything you want. # 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ', # Anything you want. 'content_html': content_html, 'attachments': ['/Users/zyh/Documents/example.zip','/root/1.jpg'], # Absolute path will be better. } attachments带附件把report.html的报告同时放到附件去发送,使用attachments参数,只需传附件的绝对路径就可以了. 传多个附件,放到list里 import zmail
# html报告地址D:\\aaaa\\result.html with open('D:\\aaaa\\result.html', 'r', encoding="utf-8") as f: content_html = f.read()
mail = { 'subject': '邮件主题:Success!', # Anything you want. # 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ', # Anything you want. 'content_html': content_html, 'attachments': ['D:\\aaaa\\result.html','D:\\122.png'], # Absolute path will be better. }
server = zmail.server('yourname@x', 'yourpassword', smtp_host="smtp.exmail.qq.com", smtp_port=465) server.send_mail('2833404xx@qq.com', mail) 
正文带图片正文,如果想发送一个图片,只需知道图片的url地址就可以了,如下个 <img src="https://x./xxx.png" width="650" height="340">' 如果是本地的图片,可以转base64后放到img标签,格式 <img src=“data:image/png;base64,*********************"/> 参考代码 content_html=''' <p>这是一张图片</p> <img src="https://img2018.cnblogs.com/blog/1070438/201906/1070438-20190622235030004-1865146937.png" alt="yoyo png" width="650" height="340"> '''
mail = { 'subject': '邮件主题:Success!', # Anything you want. # 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ', # Anything you want. 'content_html': content_html, 'attachments': ['D:\\aaaa\\result.html','D:\\122.png'], # Absolute path will be better. } 
QQ授权码如果你的发件邮箱是QQ邮箱,发件人的密码就需要用授权码了,在邮箱设置里面找到授权码 QQ邮箱smtp_host是smtp.qq.com ,多个收件人的话,接收者可以用list server = zmail.server('28yourQQ@qq.com', 'QQ邮件授权码', smtp_host="smtp.qq.com", smtp_port=465) server.send_mail(['2833404xx@qq.com','xx33404xx@qq.com'], mail)
|