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邮箱涉及代码的情况下,大多会用到此授权码,如果忘记重新再次生成

发送邮件

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([ ' yourfriend@example.com ',' 12345 @ example.com ' ],mail)收件人列表

server.send_mail([('Boss','yourfriend@example.com'),'12345@example.com'], mail) 收件人列表,带收件人名字

server.send_mail(['foo@163.com','foo@126.com'],mail,cc=['bar@163.com'])收件人列表,使用抄送

server.send_mail(['foo@163.com','foo@126.com'],mail,cc=[('Boss','bar@163.com'),'bar@126.com'])收件人列表,使用抄送带名字

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('2017@qq.com','xhrai',smtp_host='smtp.qq.com',smtp_port=465)
#发送至收件人和抄送人
server.send_mail(['wang@xin.net','61@qq.com'],mail,cc=['20@qq.com'])

常用邮箱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)

本文分享自微信公众号 - 橙子探索测试(chengzitest)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券