Python 郵件處理

imaplib

基礎(chǔ)概念

POP 和 IMAP

第一個用于下載郵件的協(xié)議稱為郵局協(xié)議(Post Office Protocal, POP),記錄在 RFC 918 中。郵局協(xié)議的目的是讓用戶的工作站可以訪問郵箱服務(wù)器里的郵件并可以通過簡單郵件傳輸協(xié)議(SMTP)將郵件發(fā)送到郵件服務(wù)器。POP協(xié)議的最新版本是第三版,也成為 POP3
在POP出現(xiàn)幾年之后有了一個與之競爭的協(xié)議,即因特網(wǎng)消息訪問協(xié)議(Internet Message Access Protocol, IMAP),它旨在提供比POP更完整的解決方案(各客戶端間的一致性)。當(dāng)前廣泛使用的版本為 IMAP4rev1。

郵箱配置

一般郵箱的設(shè)置里面都會有,打開IMAP

代碼

from email import header
import imaplib
import email

username =  *
password = *
# 連接服務(wù)器
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()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • POP3、SMTP和IMAP之間的區(qū)別和聯(lián)系簡單地說,SMTP管‘發(fā)’,POP3/IMAP管‘收’。舉個例子,你坐...
    測試的旅途中閱讀 2,029評論 0 1
  • 最近通過python寫了一個小的用例,現(xiàn)在demo基本上完成了,把用到的知識進(jìn)行下梳理。內(nèi)容就由近到遠(yuǎn)吧,因為眼前...
    小Ping平閱讀 346評論 0 0
  • 前言 郵箱對我們來說是再熟悉不過了,它與我們的生活、工作緊密聯(lián)系在一起:登錄、注冊、往來溝通...無處不在; 郵箱...
    Jack_lin閱讀 1,729評論 0 3
  • (一) - 郵箱收發(fā)協(xié)議 什么是POP3、SMTP和IMAP協(xié)議 電子郵件工作原理 POP3 POP3是Post ...
    顏值不夠才華來湊閱讀 6,029評論 7 14
  • 一大早被叫去開會,因為業(yè)務(wù)員出現(xiàn)錯誤,領(lǐng)導(dǎo)發(fā)火,領(lǐng)導(dǎo)的思維變化的太快,簽核流程又改來改去的,讓我有點不適應(yīng)?,F(xiàn)在大...
    小甜甜007閱讀 116評論 0 0

友情鏈接更多精彩內(nèi)容