前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python接收邮件

python接收邮件

作者头像
灯珑LoGin
发布2022-10-31 09:34:03
1.9K0
发布2022-10-31 09:34:03
举报
文章被收录于专栏:龙进的专栏龙进的专栏

接收邮件有两种协议:POP3和IMAP

POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端上的操作(如移动邮件、标记已读等)不会反馈到服务器上

IMAP协议提供邮件服务器和电子邮件客户端之间的双向通信,任何在客户端上做的改变都会同步到服务器上。

IMAP协议提供的摘要浏览功能可以让我们在阅读完所有的邮件信息(到达时间、主题、发件人、大小等)后才做出是否下载的决定。此外,IMAP协议能更好地支持在多个不同设备上随时访问新邮件的功能

使用POP3协议接收邮件

下面举个例子来演示使用POP3接收邮件的过程

在这个例子中,你需要把邮箱地址、密码、服务器的pop3地址更换成自己使用的邮箱的地址

代码语言:javascript
复制
import poplib
from email.parser import Parser

username = 'xxxx@xx.xxx'
password = 'xxxxxx'

pop_server = poplib.POP3_SSL('pop.xxxxx.com', 995)
print(pop_server.getwelcome().decode("utf-8"))

pop_server.user(username)
pop_server.pass_(password)

#打印出当前邮箱的状态。第一个返回值为邮件数,第二个返回值为占用的空间
print('Server stat', pop_server.stat())
#获取所有的邮件列表
resp, mails, octets = pop_server.list()
print(mails)
#获取最新的一封邮件(序号最大的),邮件索引从1开始计数!
index = len(mails)
resp, lines, octets = pop_server.retr(index)
msg_content = b'\r\n'.join(lines).decode('utf-8')
#解析出邮件
msg = Parser().parsestr(msg_content)
print(msg)
#可以根据邮件索引号直接从服务器删除邮件
pop_server.dele(index)
#关闭连接
pop_server.quit()

使用IMAP接收邮件

使用IMAP接收邮件的的方法与POP3的基本相同

代码语言:javascript
复制
import imaplib
import email

username = 'xxx@xx.com'
password = 'xxxx'
imap_server = imaplib.IMAP4_SSL('imap.xxxx.xx', 993)
imap_server.login(username, password)
print('=========LOG=========')
imap_server.print_log()
print('=====================')
#获取邮箱目录
resp, data = imap_server.list()
print(data)
#选择默认收件箱并打印邮件数量
result, data = imap_server.select('INBOX')
print(result, data)
print(data[0])
#获取最新的一封邮件
typ, lines = imap_server.fetch(data[0], '(RFC822)')
#解析出邮件
msg = email.message_from_string(lines[0][1].decode('utf-8'))
print(msg)
imap_server.close()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020年8月29日2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用POP3协议接收邮件
  • 使用IMAP接收邮件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档