背景:最近学习使用python来发送和接收邮件。查阅网上其他资料,各种复杂。后面发现有zmail使用起来特简洁。但是网上zmail对接收邮件部分描述不清,特此记录下
安装zmail
pip3 install zmail
Zmail仅支持python3,不需要任何外部依赖. 不支持python2.
参考链接:https://github.com/ZYunH/zmail/blob/master/README-cn.md
zmail发送邮件
发送邮箱代码
import zmail
subjiec = "测试zmail发送邮件"
content = "这是通过zmail发送来的邮件"
mail = {
'subject':subjiec,
'content_text':content,
}
#发送者邮箱
#发送者的邮箱
sender = '1xxxxxxx5@qq.com'
#发送者的邮箱授权码
sender_password = 'wxxxxxxxgd'
server = zmail.server(sender,sender_password)
#接收者邮箱
receiver = '1xxxxxxxxxxx3@qq.com'
#开始发送邮件
server.send_mail(receiver,mail)
print('发送成功!')
import zmail
subjiec = "测试zmail发送邮件"
content = "这是通过zmail发送来的邮件"
mail = {
'subject':subjiec,
'content_text':content,
}
#发送者邮箱
#发送者的邮箱
sender = '1xxxxxxx5@qq.com'
#发送者的邮箱授权码
sender_password = 'wxxxxxxxgd'
server = zmail.server(sender,sender_password)
#接收者邮箱
receiver = '1xxxxxxxxxxx3@qq.com'
#开始发送邮件
server.send_mail(receiver,mail)
print('发送成功!')
发送成功后接收到的邮件如下图所示
zmail接收最新的一封邮件
先附上代码:
import zmail
sender = '1xxxxxxxxx5@qq.com'
sender_password = 'xxxxxxxxxxxxxxx'
server = zmail.server(sender, sender_password)
#server.get_latest()是获取收件箱中最新的一封
mail = server.get_latest()
for k,v in mail.items():
print(k,v)
通过中断打印出来,信息如下。请关注箭头出的字段。后面我们在
现在我们需要将我们邮件的内容打印出来,见代码:
import zmail
sender = '1xxxxxxxxx5@qq.com'
sender_password = 'wxxxxxxxxxxxxxxxxxxd'
server = zmail.server(sender, sender_password)
#server.get_latest()是获取收件箱中最新的一封
mail = server.get_latest()
#打印出邮件:
print(mail['subject'])
print(mail['content_text'][0])
执行结果如下:
zmail接收所有邮件
import zmail
sender = '1xxxxxxxxxx5@qq.com'
sender_password = 'wxxxxxxxxxxxxxxxd'
server = zmail.server(sender, sender_password)
#所取所有邮件,返回一个邮件列表
mails = server.get_mails()
for mail in mails:
print("当前ID为:",mail['id'])
print("邮件主题为:",mail['subject'])
print("邮件内容为:",mail['content_text'][0])
执行结果为:
zmail相关函数使用说明
server.get_latest():获取邮箱中最新的一封邮件
c :根据ID取回邮件。邮件中最新的一份邮件ID最大。id的最小值为1
server.stat():获取邮箱的信息,返回的结果是包含两个整型的元祖:(邮件的数量,邮件的大小)
zmail.show(mail):打印邮件
查看邮件的所有内容:
import zmail
server = zmail.server('yourmail@example.com’, 'yourpassword')
mail = server.get_latest()
for k,v in mail.items():
print(k,v)server.get_mails()返回有一个邮件列表