python笔记38-使用zmail发各种邮件案例代码
前言
本篇介绍使用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
python笔记38-使用zmail发各种邮件案例代码的更多相关文章
- python发QQ邮件
python发qq邮件相对比较简单,网上教程一大把:固定套路,后面封装看自己怎么方便可以怎样进行封装:原版代码如下: """ # -*- coding : utf-8 - ...
- python 发qq邮件
import smtplibfrom email.mime.text import MIMETextmsg_from = '979477675@qq.com' # 发送方邮箱passwd = 'irg ...
- python基础===zmail,收发邮件的模块
项目地址: GitHub:https://github.com/ZYunH/zmail 介绍: https://mp.weixin.qq.com/s?__biz=MzAxMjUyNDQ5OA==&a ...
- Python笔记之不可不练
如果您已经有了一定的Python编程基础,那么本文就是为您的编程能力锦上添花,如果您刚刚开始对Python有一点点兴趣,不怕,Python的重点基础知识已经总结在博文<Python笔记之不可不知 ...
- python笔记 - day5
python笔记 - day5 参考: http://www.cnblogs.com/wupeiqi/articles/5484747.html http://www.cnblogs.com/alex ...
- python笔记 - day3
python笔记 - day3 参考:http://www.cnblogs.com/wupeiqi/articles/5453708.html set特性: 1.无序 2.不重复 3.可嵌套 函数: ...
- 我的Python笔记03
摘要: 声明:本文整理借鉴金角大王的Python之路,Day3 - Python基础3,仅供本人学习使用!!! 本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4 ...
- python笔记24-unittest单元测试之mock.patch
前言 上一篇python笔记23-unittest单元测试之mock对mock已经有初步的认识, 本篇继续介绍mock里面另一种实现方式,patch装饰器的使用,patch() 作为函数装饰器,为您创 ...
- Python+request+ smtplib 测试结果html报告邮件发送(上)《五》
此方法通用适合所有邮箱的使用,只需注意几个点,如下: QQ邮箱.其他非QQ邮箱的写法,区别点如下: #--------------------------使用腾讯企业邮箱作为发件人的操作如下----- ...
随机推荐
- pod的时区问题
1制作image时进行配置修改 2将宿主机的时区配置文件挂载到pod中(此处注意,宿主机之间需已经完成时间同步) volumeMounts: - name: host-time mountpath: ...
- 2. 运行Spark Streaming
2.1 IDEA编写程序 Pom.xml加入以下依赖: <dependency> <groupId>org.apache.spark</groupId> <a ...
- 法那科 三菱 CNC虚拟机
有虚拟机,就不用去线上 接线调机了,影响生产,还怕搞坏机子,很方便.
- PB 修改datawindow 的背景色
1.修改标题行的背景色 rgb(235, 235, 235) 2.修改选择行的背景色(即选择行高亮) if(currentrow() = getrow(), rgb(235,235,235), rgb ...
- CLRS10.1-6练习 - 用双栈实现队列
双栈实现队列算法: 分别考虑队列两种操作入队和出队,我们假设使用栈s1 s2, s1用来模拟入队,s2用来模拟出队 入队: 入队操作直接执行s1.push即可 出队: 代码实现 package hel ...
- Golang ---基准测试
什么是基准测试 基准测试,是一种测试代码性能的方法,比如你有多种不同的方案,都可以解决问题,那么到底是那种方案性能更好呢?这时候基准测试就派上用场了. 基准测试主要是通过测试CPU和内存的效率问题,来 ...
- mysql数据库的安装和连接测试并给root用户赋密码
一.mysql数据库的安装 Windows下MySQL的配置 以 MySQL 5.1 免安装版为例, 下载 mysql-noinstall-5.1.69-win32.zip ( 官方下载页: http ...
- netcore访问本地磁盘
public void ConfigureServices(IServiceCollection services) { services.AddDirectoryBrowser(); }public ...
- IEnumerable,ICollection,IList,List的使用
做C#的都知道:一类只能有一个继承类,但可以实现多个接口.这句话就告诉我们:IEnumerable,ICollection,IList,List区别了 首先我看看 IEnumerable: // ...
- 基于windows平台搭建elasticsearch 补充
https://www.cnblogs.com/skychen1218/p/8108860.html 参考此大神写的内容,感谢感谢. 不过 好像漏掉了一块内容. 导致出现问题 连接不上的问题.后来修改 ...