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邮箱的写法,区别点如下: #--------------------------使用腾讯企业邮箱作为发件人的操作如下----- ...
随机推荐
- Mac下 homebrew 安装mysql
操作步骤 安装homebrew brew install mysql 安装mysql 安装完成之后,可以运行命令启动mysql服务 mysql.server start 然后输入命令设置密码 mysq ...
- Spring-boot2X基于sharding-jdbc3.x分表分库
ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC.Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的 ...
- 【更新】Java发送邮件:个人邮箱(QQ & 网易163)+企业邮箱+Android
这次把两种情况仔细说一下,因为好多人问啦. 第一种:企业邮箱 这里在这一篇已经说的很清楚了,这次不过是建立个maven工程,引入了最新的javamail依赖,代码优化了一下.直接上代码 pom < ...
- Linux下使用matlab在后台默默的运行.m文件(无界面形式)
Linux下使用matlab在后台默默的运行.m文件(无界面形式)本主在Ubuntu18.04LTS上已经安装了matlab直接运行Matlab$ matlab会启动 matlab,出现启动界面但想要 ...
- Python中的sync和wait函数的使用
转自这篇博文,备忘: https://blog.csdn.net/Likianta/article/details/90123678 https://www.cnblogs.com/xinghun85 ...
- Redis缓存雪崩、击穿、穿透
参考大佬 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难.作为一个在互联网公司面一次拿一次offer的面霸(请允 ...
- (五)pdf的构成之文件体(catalog对象)
引自:https://blog.csdn.net/steve_cui/article/details/82735039 目录(catalog): 文档目录包含对定义文档内容的其他对象的引用.它还包含声 ...
- Bitnami配置域名访问
安装完成Bitnami后,需要执行以下命令将默认目录改为/wordpress: E:\Bitnami\wordpress-5.2.2-0\apps\wordpress\bnconfig.exe --a ...
- Java核心技术梳理-类加载机制与反射
一.引言 反射机制是一个非常好用的机制,C#和Java中都有反射,反射机制简单来说就是在程序运行状态时,对于任意一个类,能够知道这个类的所有属性和方法,对于任意一个对象,能够调用它的任意属性和方法,其 ...
- linq根据英文首字母姓名排序
names.Sort((a, b) => a.name.CompareTo(b.name));