python笔记38-使用zmail发各种邮件案例代码
2024-08-30 23:24:14
前言
本篇介绍使用zmail发各种格式的邮件,并运行成功的代码,小伙伴们只需更换自己的邮箱就可以运行起来了
content_text发送纯文本
先从最简单的发送纯文本的邮件开始,调通发送邮件的代码。
以腾讯的企业邮箱为例,smtp_host是发送邮箱的smtp服务地址,不同的邮箱不太一样。
- smtp_host:smtp.exmail.qq.com
- smtp_port:465
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@xxxx.com',
'yourpassword',
smtp_host="smtp.exmail.qq.com",
smtp_port=465)
server.send_mail('2833404xx@qq.com', mail) # 接收着
从上面代码看出,发送邮件的代码也就2句,我们只需关注三个参数
- mail 发件的内容,包含主题、正文、附件等
- server 发送邮件人的相关信息,如账号,密码,smtp_host, smtp_port
- receiver 接收者的邮箱地址
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@xxxx.com',
'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@xxxx.com',
'yourpassword',
smtp_host="smtp.exmail.qq.com",
smtp_port=465)
server.send_mail('2833404xx@qq.com', mail)
正文带图片
正文,如果想发送一个图片,只需知道图片的url地址就可以了,如下个
<img src="https://x.xxx.com/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)
更多资料参考前面这篇:https://www.cnblogs.com/yoyoketang/p/11048495.html
最新文章
- dom addeventlistener与id 绑定事件的区别
- ListView条目的侧拉删除
- 《笨办法学C》笔记之基础语法
- Android 定制下拉刷新头部 Ultra Pull To Refresh
- Clean Code 笔记 (一):命名
- Oracle的汉字转拼音首字母的函数
- win7 资源管理器的背景色修改
- java复习-多线程
- 【转】 CSS十问——好奇心+刨根问底=CSSer
- WEB自动化(Python+selenium)的API
- eclipse各版本及下载
- 背水一战 Windows 10 (84) - 用户和账号: 微软账号的登录和注销
- netty基础篇
- 在HUE中将文本格式的数据导入hive数仓中
- 细谈 Web Api 图片上传,在使用 Task.ContinueWith 变量无法赋值问题的解决办法!
- kali linux web程序集简述
- week06 07 创建RPC SERVER 换个镜像安装下载
- UVA 227 Puzzle(基础字符串处理)
- 使用 Gradle 对应用进行个性化定制
- 使用mybatis-generator生成自动代码