Python史上最简单5行代码群发邮件Zmail模块

zmail简介

Zmail 允许你发送和接受邮件尽可能的简单。你不需要去检查你的服务器地址、端口以及自己构造MIME对象,使用Zmail,你只需要关注你的邮件内容即可。Zmail只在python3中运行,不需要第三方模块。不支持python2

Zmail的优势

  • 自动填充大多数导致服务端拒信的头信息(From To LocalHost之类的)
  • 将一个字典映射为email,构造信件就像构造字典一样简单
  • 自动寻找邮件服务商端口号地址,自动选择合适的协议(经过认证的)
  • 只依赖于python3,嵌入其他项目时无需烦恼

安装

pip install zmail

开启POP3/SMTP服务

本次使用qq邮箱发送邮件,前提是需要打开qq邮箱的pop3/smtp功能:

登录邮箱——设置——账户——POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

开启POP3/SMTP服务,会先要求QQ号申请第二代密码保护,然后才能进行下一步,如果成功后,会生成一个授密码权

注意:一定要记住这个授权码,凡是需要用到qq邮箱涉及代码的情况下,大多会用到此授权码,如果忘记重新再次生成

Python史上最简单5行代码群发邮件Zmail模块_第1张图片

Python史上最简单5行代码群发邮件Zmail模块_第2张图片

 

发送邮件

smtp_host:smtp.qq.com腾讯发送邮箱的smtp服务地址,多个收件人的话,接收者可以用list

smtp_port:465腾讯发送邮箱的端口

mail 发件的内容,包含主题、正文、附件等

server 发送邮件人的相关信息,如账号,密码,smtp_host, smtp_port

receiver 接收者的邮箱地址

content_html 发送正文为html

content_text 发送正文

attachments带附件

server.send_mail([ ' [email protected] ',' 12345 @ example.com ' ],mail)收件人列表

server.send_mail([('Boss','[email protected]'),'[email protected]'], mail) 收件人列表,带收件人名字

server.send_mail(['[email protected]','[email protected]'],mail,cc=['[email protected]'])收件人列表,使用抄送

server.send_mail(['[email protected]','[email protected]'],mail,cc=[('Boss','[email protected]'),'[email protected]'])收件人列表,使用抄送带名字

 

代码如下:

import zmail,os,base64
report_url=os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))),r'reports\result.html')
report_pic_url=os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))),r'reports\result.jpg')
#读取html报告
with open(report_url,'r',encoding='utf-8') as f:
    report_html=f.read()
#邮件内容和附件
mail={'subject':'邮件主题','content_text':'邮件内容','content_html':report_html,'attachments':[report_url,report_pic_url]}
#发送人邮件信息
server=zmail.server('[email protected]','yzfbrgil',smtp_host='smtp.qq.com',smtp_port=465)
#发送至收件人和抄送人
server.send_mail(['[email protected]','[email protected]'],mail,cc=['[email protected]'])

邮件内容

Python史上最简单5行代码群发邮件Zmail模块_第3张图片

Python史上最简单5行代码群发邮件Zmail模块_第4张图片

Python史上最简单5行代码群发邮件Zmail模块_第5张图片

常用邮箱SMTP服务器地址大全

  阿里云邮箱(mail.aliyun.com):

  POP3服务器地址:pop3.aliyun.com(SSL加密端口:995;非加密端口:110)

  SMTP服务器地址:smtp.aliyun.com(SSL加密端口:465;非加密端口:25)

  IMAP服务器地址:imap.aliyun.com(SSL加密端口:993;非加密端口:143)

  

  谷歌邮箱(google.com):

  POP3服务器地址:pop.gmail.com(SSL启用端口:995)

  SMTP服务器地址:smtp.gmail.com(SSL启用端口:587)

  

  新浪邮箱(sina.com):

  POP3服务器地址:pop3.sina.com.cn(端口:110)

  SMTP服务器地址:smtp.sina.com.cn(端口:25)

  

  Tom邮箱(top.com):

  POP3服务器地址:pop.tom.com(端口:110)

  SMTP服务器地址:smtp.tom.com(端口:25)

  

  网易邮箱(163.com):

  POP3服务器地址:pop.163.com(端口:110)

  SMTP服务器地址:smtp.163.com(端口:25)

  

  126邮箱:

  POP3服务器地址:pop.live.com(端口:995)

  SMTP服务器地址:smtp.126.com(端口:25)

  

  雅虎邮箱(yahoo.com):

  POP3服务器地址:pop.mail.yahoo.com

  SMTP服务器地址:smtp.mail.yahoo.com

  

  雅虎中国(yahoo.com.cn):

  POP3服务器地址:pop.mail.yahoo.com.cn(端口:995)

  SMTP服务器地址:smtp.mail.yahoo.com.cn(端口:587)

  雅虎邮箱POP3的SSL不启用端口为110,POP3的SSL启用端口995;SMTP的SSL不启用端口为25,SMTP的SSL启用端口为465。

  

  Foxmail邮箱(foxmail.com):

  POP3服务器地址:POP.foxmail.com(端口:110)

  SMTP服务器地址:SMTP.foxmail.com(端口:25)

  

  QQ邮箱(mail.qq.com)

  POP3服务器地址:pop.qq.com(端口:110)

  SMTP服务器地址:smtp.qq.com(端口:25)

  SMTP服务器需要身份验证。

  

  搜狐邮箱(sohu.com):

  POP3服务器地址:pop3.sohu.com(端口:110)

  SMTP服务器地址:smtp.sohu.com(端口:25)

  

  HotMail邮箱(hotmail.com):

  POP3服务器地址:pop.live.com(端口:995)

  SMTP服务器地址:smtp.live.com(端口:587

  

  移动139邮箱:

  POP3服务器地址:POP.139.com(端口:110)

  SMTP服务器地址:SMTP.139.com(端口:25)

  

       中华网邮箱(china.com):

  POP3服务器地址:pop.china.com(端口:110)

  SMTP服务器地址:smtp.china.com(端口:25)

 

关注我吧!!!

 

 

你可能感兴趣的:(python,Python接口自动化,Python,unittest框架)