zmail,收发邮件的模块

介绍



Zmail 使得在python3中发送和接受邮件变得更简单。你不需要手动添加服务器地址、端口以及适合的协议,zmail会帮你完成。此外,使用一个python字典来代表邮件内容也更符合直觉

安装



Zmail仅支持python3,不需要任何外部依赖. 不支持python2.

pip3 install zmail

特性


  • 自动寻找服务器地址以及端口
  • 自动使用可靠的链接协议
  • 自动将一个python字典映射成MIME对象(带有附件的)
  • 自动添加头文件以及localhostname来避免服务器拒收你的邮件
  • 轻松自定义你的头文件
  • 支持使用HTML作为邮件内容
  • 仅需python>=3.5,你可以将其嵌入你的项目而无需其他的依赖

使用须知



使用它之前,请保证

  • 使用Python3
  • 确保打开了邮箱的POP3和SMTP功能 (对于 @163.com 和 @gmail.com 你需要设置你的应用专用密码)

然后,剩下你需要做的就是import zmail即可

使用示例


发送你的邮件

 1 import zmail
 2
 3 # 你的邮件内容
 4 mail_content = {
 5     "subject":"success!", # 邮件主题
 6     "content_text":"This message from zmail", # 邮件内容
 7     "attachments":r"D:\test.docx", # 邮件附件
 8 }
 9
10 # 使用你的邮件账户名和密码登录服务器
11 server = zmail.server("[email protected]", "XXXXXX")
12
13 # 发送邮件
14 server.send_mail(‘[email protected]‘, mail_content)

给多个信箱发件,修改发送邮件 即可,其他内容同上

# 发送邮件

server.send_mail([‘[email protected]‘,‘[email protected]‘],mail_content)

发送HTML作为邮件内容

mail = {
    ‘subject‘: ‘Success!‘,  # 邮件主题
    ‘content_html‘: [‘HTML CONTENT‘], # HTML格式的邮件内容
    ‘attachments‘: ‘/Users/zyh/Documents/example.zip‘,  # 邮件附件
}
server.send_mail(‘[email protected]‘,mail)

或者

with open(‘/Users/example.html‘,‘r‘) as f:
    content_html = f.read()
mail = {
    ‘subject‘: ‘Success!‘,
    ‘content_html‘: content_html,
    ‘attachments‘: ‘/Users/zyh/Documents/example.zip‘,
}
server.send_mail(‘[email protected]‘,mail)
  • 自定义你的server

如果zmail不能正常工作,你可以自定义server的配置

server = zmail.server(‘username‘,‘password‘,smtp_host=‘smtp.163.com‘,smtp_port=994,smtp_ssl=True,pop_host=‘pop.163.com‘,pop_port=995,pop_tls=True)

取回你的邮件

  • 取得最新的邮件

import zmail
server = zmail.server(‘[email protected]‘, ‘yourpassword‘)
mail = server.get_latest()
  • 依据id取回邮件

mail = server.get_mail(2)
  • 依据 (subject,after,before,sender)取回一个列表的邮件

mail = server.get_mails(subject=‘163‘,after=‘2018-1-1‘,sender=‘github‘)

示例中, 如果 ‘163‘ 在邮件的主题中,这封邮件将会被匹配, 例如‘ [163] Your password has changed‘

邮件的结构

  • content-type: 邮件内容的类型
  • subject: 邮件主题
  • to:收件人
  • from:寄件人
  • date: 年-月-日 时间 时区
  • boundary: 如果邮件为multiple - - - parts,你可以得到其分界线
  • content: 邮件的文本内容(仅在text/plain时可以被解析)
  • contents: 邮件的body,里面包含着由分界线分割的每一个段落
  • attachments: None 或者 [[‘附件名称;编码方式‘,‘附件的二进制内容‘]...]
  • id: 在邮箱中的id

项目地址:

GitHub:https://github.com/ZYunH/zmail 

原文地址:https://www.cnblogs.com/zhouyxh/p/12320708.html

时间: 2024-10-12 20:35:58

zmail,收发邮件的模块的相关文章

python 收发邮件

今天记录一下如何使用python收发邮件,知识要点在python内置的poplib和stmplib模块的使用上. 1. 准备工作 首先,我们需要有一个测试邮箱,我们使用新浪邮箱,而且要进行如下设置: 在新浪邮箱首页的右上角找到设置->更多设置,然后在左边选择"客户端/pop/imap/smtp": 最后,将Pop3/smtp服务的服务状态打开即可: 2. poplib接收邮件 首先,介绍一下poplib登录邮箱和下载邮件的一些接口: self.popHost = 'pop.sin

linux 下 搭建邮件邮件服务器(Postfix+Dovecot)(二)-基于mysql的虚拟账户登陆收发邮件

使用虚拟用户收发邮件安装九.安装Courier authentication library 1.courier简介courier-authlib 是Courier组件中的认证库,它是courier组件中一个独立的子项目,用于为courier的其它组件提供认证服务.其认证功能通常包括验证登录时的账号和密码.获取一个相关的家目录或邮件目录等信息.改变账号的密码.而其认证的实现方式也包括基于PAM通过/etc/passwd和/etc/shadow进行认证,基于GDBM或DB进行认证,基于LDAP/M

JavaMail实现收发邮件(五)使用SSL实现加密传输

一 概念简介 Secure Socket Layer,为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听.一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境.只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL.当前版本为3.0.它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输.(PS:来至百度百科) 二 在JavaM

2015第34周二能收发邮件但不能打开网页解决方法

晚上电脑可以正常收发邮件,ping同 www.baidu.com,但用IE就是不能打开网页,尝试把无限关掉再打开,网卡禁用再启用还是不行,很郁闷,问在同一网络的其它人也能正常上网,最后通过以下方法解决IE浏览器的Internet选项->连接->局域网设置->去掉勾选使用自动配置脚本,勾选自动检测设置,并且去掉下面代理服务器的勾选后能正常上网.出现此问题可能是因为今天调试拦截http请求时,应用了代理设置导致的. 在默认情况下,Fiddler不能监听Java HttpURLConnecti

在命令行上 使用 mutt, fetchmail, maildrop, msmtp 收发邮件

基于shell 现在已经有了 Mail.app, Thunderbird, Outlook 这些图形化工具能很方便的处理邮件,为啥还需要 mutt 这种命令行文本方式的邮件工具呢?mutt 的一个优势是占用资源小,可以很好的运行在低配置的虚拟机或古老的电脑上(应该不会有人想在 256MB 内存的虚拟机或 VPS 上用 X Window/Gnome/Thunderbird 这种组合吧).那为什么要在虚拟机上收发邮件呢,不能在自己电脑上处理邮件吗?可能有多个电脑而且电脑经常换,电脑可能被盗,硬盘可能

ASP.NET收发邮件

在.NET中常见到在线发邮件的实例,网站加上这个功能可以方便站长与用户的交流. NET 中发邮件有时候会用到IIS组件中的邮件服务器,不过复杂.对虚拟主机的配置也较麻烦, 也可用第三方组件比如Jmail,但.net本身就已经封装了发邮件的类:WebMail; 不过要首先引入这个类:using System.Web.Mail;//导入邮件发送类using System.IO;//文件上传类型 这个类中包含了一些常用的对象常用的有From ,To,Subject,Body,Attchments(附件

使用JavaMail收发邮件

概述 邮件相关的标准 厂商所提供的JavaMail服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括: SMTP(Simple Mail Transfer Protocol):即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. POP3(Post Office Protocol - Version 3):即邮局协议版本3,用于接收电子邮件的标准协议. IMAP(Internet Mail Access Protocol):即Internet邮件访问

DouNet学习_收发邮件

一.收发邮件 --->第一步:发邮件首先要有发送者的邮箱地址和登录的密码才能发送 这些都写在APP里  不要写死 --->第二步:发邮件就要有网络,要添加net.Mail命名空间 要发送的邮件的对象 MaileMessage  mail=new MaileMessage(); 设置发信人的地址 maile.From=new MaileMessage(发件人的地址); 设置收信人的地址 mail.To.Add(new MaileMessage(收件人的地址)); 设置标题 mail.Subjec

Android使用javamail收发邮件

Android里访问网络.收发短信都还是经常用到的功能,但是这次需求是可以收发邮件,网上搜了下,这里转一个,博主写的几个工具类确实非常好用,转帖过来,下面是需要用到的资源和工具类文件 http://pan.baidu.com/s/1hqejT7A 在发送多用户邮件中我添加了发送带附件的邮件的代码 1 发送邮件 今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题不用第三方邮件程序.为了以后使用方便,自己写了段代码. Javamail-Android配置步骤: 下载An