zmail,收发邮件的模块

Posted zhouyxh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:	est.docx", # 邮件附件
 8 }
 9 
10 # 使用你的邮件账户名和密码登录服务器
11 server = zmail.server("XXXXXX@163.com", "XXXXXX")
12 
13 # 发送邮件
14 server.send_mail(yourfriend@example.com, mail_content)

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

# 发送邮件

server.send_mail([555555@qq.com,666666@qq.com],mail_content)

发送HTML作为邮件内容

mail = {
    subject: Success!,  # 邮件主题
    content_html: [HTML CONTENT], # HTML格式的邮件内容 
    attachments: /Users/zyh/Documents/example.zip,  # 邮件附件
}
server.send_mail(yourfriend@example.com,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(yourfriend@example.com,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(yourmail@example.com, 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 

以上是关于zmail,收发邮件的模块的主要内容,如果未能解决你的问题,请参考以下文章

Python zmail 模块

利用python的zmail模块发送邮件

使用zmail发送邮件

python--用zmail发送邮件

Python 收发邮件

JavaWeb SSM邮件收发信息系统(数据库+源码+论文《精品毕设》)实现了对登录注册邮件收发消息和通讯录添加以及草稿箱和个人设置模块的代码编写和效果实现