最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python使用imap-tools模塊下載郵件附件的示例

 更新時間:2021年12月10日 11:10:00   作者:歪理斜說  
imap-tools模塊是python的第三方擴(kuò)展,?它使用標(biāo)準(zhǔn)庫imaplib,并將常見的郵件處理事件封裝,郵件處理起來代碼短,下面給大家介紹下python使用imap-tools模塊下載郵件中的附件示例代碼,感興趣的朋友一起看看吧

最近在做一些email相關(guān)的辦公自動化項目,發(fā)現(xiàn)一個第三方模塊imap-tools不錯, 網(wǎng)上沒有啥相關(guān)介紹,所以記錄下來.

環(huán)境: python3.8; imap-tools 0.39.0

需要pip 安裝一下imap-tools模塊

imap-tools模塊是python的第三方擴(kuò)展, 它使用標(biāo)準(zhǔn)庫imaplib,并將常見的郵件處理事件封裝,郵件處理起來代碼短. 下面是個下載郵件附件的示例

from imap_tools import MailBox

with MailBox("imap服務(wù)器名").login("賬號", "密碼") as mailbox:
    for msg in mailbox.fetch(limit=2,reverse=True):  # 我這里為了避免讀取全部的郵件,加上了limit=2的匹配參數(shù),讀取兩封郵件,按照最新接收的次序排序,進(jìn)行測試; 
        for att in msg.attachments:  # msg為上一行取得的全部郵件
            if att.filename:    # 如果附件的文件名不為空
                att_data = att.payload # 獲得附件的內(nèi)容
                f = open(att.filename,'wb') # 用二進(jìn)制打開,一般郵件附件都是二進(jìn)制的.
                f.write(att_data)
                f.close()

就是這么短,用起來比imaplib爽多了.

補(bǔ)充:使用Python的imap和email模塊讀取郵件

SMTP發(fā)送郵件的博文很多,但完整讀取郵件的較少,本文主要是Python3讀取郵件的編碼,同時使用BeautifulSoup解析郵件內(nèi)容。

Python版本信息,如下:

Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)] on win32

代碼

import email
import imaplib
from bs4 import BeautifulSoup
def main():
    try:
		# 填寫需要讀取郵件服務(wù)器的imap的host和port,不知道請聯(lián)系管理員
        conn = imaplib.IMAP4_SSL(host='imap.xxx.com', port='993')
		# 讀取郵件的用戶名和密碼
        conn.login('xxx@qq.com', 'your password')
        # 默認(rèn)選擇收件箱 INBOX
        conn.select()
		# Recent\Seen參數(shù)不起作用,暫先讀取所有郵件
        status, data = conn.search(None, 'ALL')  
        if status != 'OK':
            raise Exception('讀取郵件發(fā)生錯誤')
        emailids = data[0].split()
        # 倒序讀取郵件
        mail_counts = len(emailids)
        for i in range(mail_counts-1, 0, -1):
			# 獲取郵件信息
            status, edata = conn.fetch(emailids[i], '(RFC822)')
            # Message對象
            msg = email.message_from_bytes(edata[0][1])
            # 標(biāo)題
            subject = email.header.decode_header(msg.get('subject'))
            # subject包含文檔編碼
            default_code = subject[0][1]
            # print('Content_Type', msg.get_content_type())
            ctype = msg.get_content_type()
			# 是否multipart類型,分別處理
            if msg.is_multipart():
                pl = msg.get_payload()
                for m in pl:
                    ctype = m.get_content_type()
                    if 'html' in ctype:
						# 注意decode參數(shù),如果是True將解碼base64/quoted-printable等格式編碼內(nèi)容,否則不解碼
                        html = str(m.get_payload(decode=True), m.get('content-type').split('=')[1])
                    # BeautifulSoup解析網(wǎng)頁
                    soup = BeautifulSoup(html, "lxml")
                    divs = soup.select('body')
                    for d in divs:
						# 提取所有文本內(nèi)容
                        text = d.get_text(strip=True)  
                        print(text)
            else:
                html = str(msg.get_payload(decode=True), default_code)
                # BeautifulSoup解析網(wǎng)頁
                soup = BeautifulSoup(html, "lxml")
				# 提取body標(biāo)簽里面的所有文本內(nèi)容
                divs = soup.select('body')  
                for d in divs:
                    text = d.get_text(strip=True)
                    print(text)
    except Exception as ex:
        print(ex)
    finally:
        # close
        conn.close()
        conn.logout()
if __name__ == "__main__":
    main()

到此這篇關(guān)于python使用imap-tools模塊下載郵件中的附件的文章就介紹到這了,更多相關(guān)python下載郵件附件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于Python中的同步異步阻塞與非阻塞

    關(guān)于Python中的同步異步阻塞與非阻塞

    這篇文章主要介紹了關(guān)于Python中的同步異步阻塞與非阻塞,具有一定的參考價值,有需要的朋友可以看一下
    2023-03-03
  • Python從數(shù)據(jù)庫讀取大量數(shù)據(jù)批量寫入文件的方法

    Python從數(shù)據(jù)庫讀取大量數(shù)據(jù)批量寫入文件的方法

    今天小編就為大家分享一篇Python從數(shù)據(jù)庫讀取大量數(shù)據(jù)批量寫入文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python正則表達(dá)式re之compile函數(shù)解析

    python正則表達(dá)式re之compile函數(shù)解析

    這篇文章主要介紹了python正則表達(dá)式re之compile函數(shù)解析,介紹了其定義,匹配模式等相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • Python騷操作完美實現(xiàn)短視頻偽原創(chuàng)

    Python騷操作完美實現(xiàn)短視頻偽原創(chuàng)

    剪輯的視頻上傳到某平臺碰到降權(quán)怎么辦?視頻平臺都有一套自己的鑒別算法,專門用于處理視頻的二次剪輯,本篇我們來用python做一些特殊處理
    2022-02-02
  • pandas按某列降序的實現(xiàn)

    pandas按某列降序的實現(xiàn)

    本文主要介紹了pandas按某列降序的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Python使用DrissionPage實現(xiàn)網(wǎng)頁自動化采集

    Python使用DrissionPage實現(xiàn)網(wǎng)頁自動化采集

    DrissionPage 是一個基于 python 的網(wǎng)頁自動化工具,它既能控制瀏覽器,也能收發(fā)數(shù)據(jù)包,還能把兩者合而為一,可兼顧瀏覽器自動化的便利性和 requests 的高效率,本文給大家介紹了Python使用DrissionPage實現(xiàn)網(wǎng)頁自動化采集,需要的朋友可以參考下
    2025-03-03
  • python os.listdir()亂碼解決方案

    python os.listdir()亂碼解決方案

    在本篇文章里小編給大家整理的是一篇關(guān)于python os.listdir()亂碼解決方案,對此有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • 一行代碼python實現(xiàn)文件共享服務(wù)器

    一行代碼python實現(xiàn)文件共享服務(wù)器

    這篇文章主要介紹了一行代碼python實現(xiàn)文件共享服務(wù)器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • OpenCV實現(xiàn)單目攝像頭對圖像目標(biāo)測距

    OpenCV實現(xiàn)單目攝像頭對圖像目標(biāo)測距

    這篇文章主要為大家詳細(xì)介紹了OpenCV實現(xiàn)單目攝像頭對圖像目標(biāo)測距,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Python調(diào)用Google?Bard的圖文詳解

    Python調(diào)用Google?Bard的圖文詳解

    Google?Bard?是一種開源數(shù)據(jù)可視化和探索工具,可為?開發(fā)人員?提供支持,本文主要為大家介紹了Python調(diào)用Google?Bard的方法,需要的可以參考下
    2023-08-08

最新評論

双峰县| 永德县| 会东县| 延安市| 仪征市| 石渠县| 赞皇县| 海宁市| 临颍县| 扶风县| 五家渠市| 大渡口区| 广平县| 安宁市| 卓尼县| 托克逊县| 遵义县| 远安县| 竹溪县| 班玛县| 策勒县| 礼泉县| 上杭县| 栾城县| 深水埗区| 香河县| 沈丘县| 宁安市| 平果县| 上杭县| 内江市| 永康市| 大庆市| 北川| 延津县| 莆田市| 乌鲁木齐县| 佛教| 全州县| 闽清县| 余江县|