前言

本篇介绍使用zmail发各种格式的邮件,并运行成功的代码,小伙伴们只需更换自己的邮箱就可以运行起来了

content_text发送纯文本

先从最简单的发送纯文本的邮件开始,调通发送邮件的代码。

以腾讯的企业邮箱为例,smtp_host是发送邮箱的smtp服务地址,不同的邮箱不太一样。

  • smtp_host:smtp.exmail.qq.com
  • smtp_port:465
  1. import zmail
  2. '''
  3. 作者:上海-悠悠
  4. QQ交流群:717225969
  5. '''
  6. mail = {
  7. 'subject': '邮件主题:Success!', # Anything you want.
  8. 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ', # Anything you want.
  9. }
  10. server = zmail.server('yourname@xxxx.com',
  11. 'yourpassword',
  12. smtp_host="smtp.exmail.qq.com",
  13. smtp_port=465)
  14. 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正文内容

  1. import zmail
  2. '''
  3. 作者:上海-悠悠
  4. QQ交流群:717225969
  5. '''
  6. # html报告地址D:\\aaaa\\result.html
  7. with open('D:\\aaaa\\result.html', 'r', encoding="utf-8") as f:
  8. content_html = f.read()
  9. mail = {
  10. 'subject': '邮件主题:Success!', # Anything you want.
  11. # 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ', # Anything you want.
  12. 'content_html': content_html
  13. }
  14. server = zmail.server('yourname@xxxx.com',
  15. 'yourpassword',
  16. smtp_host="smtp.exmail.qq.com",
  17. smtp_port=465)
  18. server.send_mail('283340479@qq.com', mail)

也可以自己写html正文内容

  1. content_html = '''
  2. <h1>这是一级标题</h1>
  3. <h2>这是二级标题</h2>
  4. <h3>这是三级标题</h3>
  5. <p>这段是有个段落,可以写很多你要写的内容</p>
  6. <a href="https://www.cnblogs.com/yoyoketang/">点我,可以跳转到我的博客</a>
  7. '''
  8. mail = {
  9. 'subject': '邮件主题:Success!', # Anything you want.
  10. # 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ', # Anything you want.
  11. 'content_html': content_html
  12. 'attachments': ['/Users/zyh/Documents/example.zip','/root/1.jpg'], # Absolute path will be better.
  13. }

attachments带附件

把report.html的报告同时放到附件去发送,使用attachments参数,只需传附件的绝对路径就可以了.

传多个附件,放到list里

  1. import zmail
  2. # html报告地址D:\\aaaa\\result.html
  3. with open('D:\\aaaa\\result.html', 'r', encoding="utf-8") as f:
  4. content_html = f.read()
  5. mail = {
  6. 'subject': '邮件主题:Success!', # Anything you want.
  7. # 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ', # Anything you want.
  8. 'content_html': content_html,
  9. 'attachments': ['D:\\aaaa\\result.html','D:\\122.png'], # Absolute path will be better.
  10. }
  11. server = zmail.server('yourname@xxxx.com',
  12. 'yourpassword',
  13. smtp_host="smtp.exmail.qq.com",
  14. smtp_port=465)
  15. server.send_mail('2833404xx@qq.com', mail)

正文带图片

正文,如果想发送一个图片,只需知道图片的url地址就可以了,如下个

  1. <img src="https://x.xxx.com/xxx.png" width="650" height="340">'

如果是本地的图片,可以转base64后放到img标签,格式

  1. <img src=“data:image/png;base64,***************************************************"/>

参考代码

  1. content_html='''
  2. <p>这是一张图片</p>
  3. <img src="https://img2018.cnblogs.com/blog/1070438/201906/1070438-20190622235030004-1865146937.png" alt="yoyo png" width="650" height="340">
  4. '''
  5. mail = {
  6. 'subject': '邮件主题:Success!', # Anything you want.
  7. # 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ', # Anything you want.
  8. 'content_html': content_html,
  9. 'attachments': ['D:\\aaaa\\result.html','D:\\122.png'], # Absolute path will be better.
  10. }

QQ授权码

如果你的发件邮箱是QQ邮箱,发件人的密码就需要用授权码了,在邮箱设置里面找到授权码

QQ邮箱smtp_host是smtp.qq.com,多个收件人的话,接收者可以用list

  1. server = zmail.server('28yourQQ@qq.com',
  2. 'QQ邮件授权码',
  3. smtp_host="smtp.qq.com",
  4. smtp_port=465)
  5. server.send_mail(['2833404xx@qq.com','xx33404xx@qq.com'], mail)

更多资料参考前面这篇:https://www.cnblogs.com/yoyoketang/p/11048495.html

python笔记38-使用zmail发各种邮件案例代码的更多相关文章

  1. python发QQ邮件

    python发qq邮件相对比较简单,网上教程一大把:固定套路,后面封装看自己怎么方便可以怎样进行封装:原版代码如下: """ # -*- coding : utf-8 - ...

  2. python 发qq邮件

    import smtplibfrom email.mime.text import MIMETextmsg_from = '979477675@qq.com' # 发送方邮箱passwd = 'irg ...

  3. python基础===zmail,收发邮件的模块

    项目地址: GitHub:https://github.com/ZYunH/zmail  介绍: https://mp.weixin.qq.com/s?__biz=MzAxMjUyNDQ5OA==&a ...

  4. Python笔记之不可不练

    如果您已经有了一定的Python编程基础,那么本文就是为您的编程能力锦上添花,如果您刚刚开始对Python有一点点兴趣,不怕,Python的重点基础知识已经总结在博文<Python笔记之不可不知 ...

  5. python笔记 - day5

    python笔记 - day5 参考: http://www.cnblogs.com/wupeiqi/articles/5484747.html http://www.cnblogs.com/alex ...

  6. python笔记 - day3

    python笔记 - day3 参考:http://www.cnblogs.com/wupeiqi/articles/5453708.html set特性: 1.无序 2.不重复 3.可嵌套 函数: ...

  7. 我的Python笔记03

    摘要: 声明:本文整理借鉴金角大王的Python之路,Day3 - Python基础3,仅供本人学习使用!!!   本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4 ...

  8. python笔记24-unittest单元测试之mock.patch

    前言 上一篇python笔记23-unittest单元测试之mock对mock已经有初步的认识, 本篇继续介绍mock里面另一种实现方式,patch装饰器的使用,patch() 作为函数装饰器,为您创 ...

  9. Python+request+ smtplib 测试结果html报告邮件发送(上)《五》

    此方法通用适合所有邮箱的使用,只需注意几个点,如下: QQ邮箱.其他非QQ邮箱的写法,区别点如下: #--------------------------使用腾讯企业邮箱作为发件人的操作如下----- ...

随机推荐

  1. Git 初始仓库

    配置好环境后,通常有两种方式使用git,一种从git仓库上克隆,进行操作,一种是在本地创建并初始仓库,进行操作.工作中前者比较多见. 下面演示如何在本地创建仓库. 1.新建一个目录 # mkdir t ...

  2. 写代码如何合理使用和优化我们的机器资源(CPU、内存、网络、磁盘)

    写代码脑子一定要绷紧一根弦,认知到我们所在的机器资源是有限的.机器资源有哪些?CPU.内存.网络.磁盘等,如果不做好保护控制工作,一旦某一资源满负荷,很容易导致出现线上问题. 1 CPU 资源怎么限制 ...

  3. 基于面绘制的MC算法以及基于体绘制的 Ray-casting 实现Dicom图像的三维重建(python实现)

    加入实验室后,经过张老师的介绍,有幸与某公司合共共同完成某个项目,在此项目中我主要负责的是三维 pdf 报告生成.Dicom图像上亮度.对比度调整以及 Dicom图像三维重建.今天主要介绍一下完成Di ...

  4. Spring boot + mybatis + mysql代码生成器

    引入依赖: 在pom文件最下边: <build> <plugins> <!--逆向工程--> <plugin> <groupId>org.m ...

  5. C语言学习笔记01——C语言概述

    作者:Eventi 出处:http://www.cnblogs.com/Eventi 欢迎转载,也请保留这段声明.谢谢! 1 C语言的起源 1972年,贝尔实验室的丹尼斯·里奇(Dennis Ritc ...

  6. Codeforces Round #499 (Div. 1)

    Codeforces Round #499 (Div. 1) https://codeforces.com/contest/1010 为啥我\(\rm Div.1\)能\(A4\)题还是\(\rm s ...

  7. 论文笔记: Deep Learning based Recommender System: A Survey and New Perspectives

    (聊两句,突然记起来以前一个学长说的看论文要能够把论文的亮点挖掘出来,合理的进行概括23333) 传统的推荐系统方法获取的user-item关系并不能获取其中非线性以及非平凡的信息,获取非线性以及非平 ...

  8. SQL Server——死锁查看

    一.通过语句查看 --查询哪些死锁SELECT request_session_id spid, OBJECT_NAME( resource_associated_entity_id ) tableN ...

  9. C# vb .net实现玻璃桌子效果滤镜

    在.net中,如何简单快捷地实现Photoshop滤镜组中的玻璃桌子效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第 ...

  10. IEnumerable,ICollection,IList,List的使用

    做C#的都知道:一类只能有一个继承类,但可以实现多个接口.这句话就告诉我们:IEnumerable,ICollection,IList,List区别了 首先我看看 IEnumerable:   // ...