美文网首页
Python 邮件处理

Python 邮件处理

作者: dasdadf | 来源:发表于2019-04-04 13:46 被阅读0次
imaplib

基础概念

POP 和 IMAP

第一个用于下载邮件的协议称为邮局协议(Post Office Protocal, POP),记录在 RFC 918 中。邮局协议的目的是让用户的工作站可以访问邮箱服务器里的邮件并可以通过简单邮件传输协议(SMTP)将邮件发送到邮件服务器。POP协议的最新版本是第三版,也成为 POP3
在POP出现几年之后有了一个与之竞争的协议,即因特网消息访问协议(Internet Message Access Protocol, IMAP),它旨在提供比POP更完整的解决方案(各客户端间的一致性)。当前广泛使用的版本为 IMAP4rev1

邮箱配置

一般邮箱的设置里面都会有,打开IMAP

代码

from email import header
import imaplib
import email

username =  *
password = *
# 连接服务器
session = imaplib.IMAP4_SSL(host='imap.qq.com')
# 登陆
login_statue, login_message = session.login(username, password)
if login_statue != 'OK':
    raise('Login Fail')
session.select('INBOX')
# QQ邮箱的search就是个坑,只有从所有的里面慢慢搜了
search_statue, uids = session.search(None, 'ALL')
if search_statue != 'OK':
    raise('Search Fail')
list_uid = uids[0].split()
for uid in list_uid[::-1]:
    fetch_statue, fetch_content = session.fetch(uid, '(RFC822)')
    if fetch_statue != 'OK':
        raise('Fecth content Fail')
    msg = email.message_from_string(fetch_content[0][1])
    subject, encoding = header.decode_header(msg['subject'])[0]
    encoding = 'utf-8' if encoding is None else encoding 
    # 这里是我要用的名字,自行忽略
    subject_content = subject.decode(encoding).strip().split()[-1]
    if subject_content in names:
        # 遍历这个邮件
        for part in msg.walk():
            if part.get_content_maintype() == 'multipart':
                continue
            if part.get('Content-Disposition') is None:
                continue
            file_out = os.path.join(
                dir_out, '{}.tar.gz'.format(subject_content))
            with open(file_out, 'wb') as OUT:
                print(part.get_payload(decode=True), end='', file=OUT)
session.close()
session.logout()

相关文章

  • Python 邮件处理

    基础概念 POP 和 IMAP 第一个用于下载邮件的协议称为邮局协议(Post Office Protocal, ...

  • 31.2企业级开发进阶3.2:接收电子邮件

    上一节内容中,我们通过Python进行了电子邮件发送功能的处理本节内容内容主要讲解接收邮件功能的处理 通过SMTP...

  • 2020-03-09 sendmail

    python发邮件简单三步,python发邮件python-email.htmlpython smtp邮件pyth...

  • Python之Zmail邮件处理

    介绍 Zmail 使得在python3中发送和接受邮件变得更简单。你不需要手动添加服务器地址、端口以及适合的协议,...

  • Python入门系列--邮件--day02

    参考地址: Python发送邮件给多人 Python邮件功能 - 使用163邮箱SMTP服务器发送邮件

  • python收发邮件

    Python发送邮件的两个包: smtplib 用来发送邮件。 email 用来构建邮件。 Python 的 em...

  • python自动发送邮件

    python自动发送邮件 在说python发送邮件之前,需要了解一下简单的邮件发送知识,邮件发送一般通过SMTP协...

  • Python3实现自动定时发送邮件功能

    Python SMTP发送邮件 SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、H...

  • Python发送邮件

    Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。 Python对SMTP支持有...

  • Linux中通过SHELL发送邮件

    笔者做过做过使用python发送邮件-Python使用yagmail库发送邮件[https://www.jia...

网友评论

      本文标题:Python 邮件处理

      本文链接:https://www.haomeiwen.com/subject/gbhtiqtx.html