import datetime
import imaplib
import email
import re
from email.header import decode_header
# 邮件服务器地址和端口号
IMAP_SERVER = "smtp.qq.com"
IMAP_PORT = 993
# 登录邮箱和密码
EMAIL_ADDRESS = "自己的QQ邮箱"
PASSWORD = "自己的授权码"
# 创建 IMAP 连接
imap = imaplib.IMAP4_SSL(IMAP_SERVER, IMAP_PORT)
# 登录邮箱
imap.login(EMAIL_ADDRESS, PASSWORD)
# 选择收件箱
imap.select("INBOX")
# 搜索收件箱中所有未读邮件
# SEARCH 所有信件 UNSEEN 所有未读信件
status, messages = imap.search(None, "UNSEEN")
def decode_mime_words(s):
return u''.join(
word.decode(encoding or 'utf8') if isinstance(word, bytes) else word
for word, encoding in decode_header(s))
def user_decode(user):
return decode_mime_words(user)
# fro = re.findall(r'<(.*?)>', user)
# if fro:
# er = user.split('"')[1]
# return user.replace(er, decode_mime_words(er))
# # print(decode_mime_words(er))
# else:
# return user
# 遍历所有未读邮件
for num in messages[0].split():
# 获取邮件内容
status, data = imap.fetch(num, "(RFC822)")
raw_email = data[0][1]
email_message = email.message_from_bytes(raw_email)
# 打印邮件主题和发件人
# print(email_message)
print("=============================================")
print(f"发件人:{user_decode(email_message['From'])}")
print(f"主题:{decode_mime_words(email_message['Subject'])}")
if email_message['Date']:
# print("时间:", email_message['Date'])
print("时间:", datetime.datetime.strptime(email_message['Date'], '%a, %d %b %Y %H:%M:%S %z'))
else:
# print('时间:', email_message['Received'].split(';')[-1])
print("时间:",
datetime.datetime.strptime(email_message['Received'].split(';')[-1], ' %a, %d %b %Y %H:%M:%S %z'))
print('Sender:', email_message['Sender'])
print(f"收件人:{user_decode(email_message['To'])}")
# 解析邮件内容
print("正文:")
for part in email_message.walk():
if part.get_content_type() == "text/plain":
body = part.get_payload(decode=True)
print(body.decode())
print("结束 ****************************************************")
# 关闭 IMAP 连接
imap.close()
imap.logout()
没有合适的资源?快使用搜索试试~ 我知道了~
代码仅为学习参考样例
资源推荐
资源详情
资源评论
收起资源包目录
邮件收发.rar (2个子文件)
邮件收发
收.py 2KB
发.py 946B
共 2 条
- 1
资源评论
渊季
- 粉丝: 1323
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功