Python3中通过Zmail库发送电子邮件

一、Zmail 是什么

Zmail或许是最简单的邮件收发库,开发网址为:

https://github.com/ZYunH/zmail

GITHUB中的Zmail
snipaste_20180318_202743.png

在上述github下载压缩包 zmail-master.zip 。说明文档在其中,见Readme.md和README-cn.md。其中介绍中说:

Zmail allows you to send and get emails as possible as it can be in python.

Zmail 允许你发送和接受邮件尽可能的简单。你不需要去检查你的服务器地址、端口以及自己构造MIME对象,使用Zmail,你只需要关注你的邮件内容即可。

Zmail还在开发进步中,基本功能已经不错了,有些功能仍不完善。

二、在Anaconda3中安装Zmail

(1)通过pip安装
pip install zmail

联网后,在Windows命令窗中执行及反馈信息:

(base) C:\Users\邵玉斌>pip install zmail
Collecting zmail
  Downloading zmail-0.0.6-py3-none-any.whl
Installing collected packages: zmail
Successfully installed zmail-0.0.6

(2)离线安装

说明文档中是这样说的:(我没试过)

你可以下载Zmail的master分支,将其解压,切换到相应目录,然后执行

python  setup.py install

三、实验:使用Zmail发送邮件

3.1 首先要为使用QQ邮箱发送更改配置

Zmail简化了邮件发送的配置方式,将常用邮箱pop和smtp的端口配置放在了如C:\ProgramData\Anaconda3\Lib\site-packages\zmail\info.py文件中。其中内容是:

"""
zmail.info
~~~~~~~~~~~~
This module provide supported server information.


'Server_provider_address':{
    'protocol':('protocol_server_address', port, ssl),
}
"""
supported_server = {
    '163.com': {
        'smtp': ('smtp.163.com', 994, True),
        'pop3': ('pop.163.com', 995, True),
        'imap': ('imap.163.com', 993, True)

    },
    '126.com': {
        'smtp': ('smtp.126.com', 994, True),
        'pop3': ('pop.126.com', 995, True),
        'imap': ('imap.126.com', 993, True)

    },
    'yeah.net': {
        'smtp': ('smtp.yeah.net', 994, True),
        'pop3': ('pop.yeah.net', 995, True),
        'imap': ('imap.yeah.net', 993, True)

    },
    'qq.com': {
        'smtp': ('smtp.qq.com', 465, True),
        'pop3': ('pop.qq.com', 995, True),
    },
    'gmail.com': {
        'smtp': ('smtp.gmail.com', 587, False),
        'pop3': ('pop.gmail.com', 995, True),
    },
    'sina.com': {
        'smtp': ('smtp.sina.com', 465, True),
        'pop3': ('pop.sina.com', 995, True),
    },
    'outlook.com': {
        'smtp': ('smtp-mail.outlook.com', 587, False),
        'pop3': ('pop.outlook.com', 995, True),
    },

}


def get_supported_server_info(mail_address, protocol):
    """Use user address to get server address and port."""
    provider = mail_address.split('@')[1]

    if provider in supported_server:
        server_info = supported_server[provider]
        if protocol in server_info:
            return server_info[protocol]

    if protocol == 'smtp':
        return 'smtp.' + provider, 465, True
    elif protocol == 'pop3':
        return 'pop3.' + provider, 995, True

如果用QQ邮箱帐号发送,请注意确认其中SMTP端口号要由默认的25改为465

    'qq.com': {
        'smtp': ('smtp.qq.com', 465, True),
        'pop3': ('pop.qq.com', 995, True),
    }
3.2 发送邮件

先要在QQ邮箱配置中允许使用客户端收发邮件。
snipaste_20180318_205429.png

然后编写发送简单邮件的Python代码

#文件名:SendByZmail.py
import zmail
# 你的邮件内容
mail_content ={
    'subject': 'Success!',  # 邮件标题写在这
    'content': 'This message from zmail!',  # 邮件正文写在这
}

# 使用你的邮件账户名和密码登录服务器
server = zmail.server("这里填上邮箱XXXXXX@qq.com", "这里是密码XXXXXX")
# 发送邮件指令
server.send_mail(["这里填上接收邮箱YYYYY@qq.com"], mail_content)

执行:

python SendByZmail.py

结果在QQ邮箱中收到邮件。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值