" />

亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解python實現(xiàn)郵件解析的方法

 更新時間:2021年12月19日 17:06:35   作者:Yunlord  
這篇文章主要為大家介紹了python實現(xiàn)郵件解析的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

前言

如何通過python實現(xiàn)郵件解析?郵件的格式十分復(fù)雜,主要是mime協(xié)議,本文主要是從實現(xiàn)出發(fā),具體原理可以自行研究。

一、安裝

通過mailgun開源的Flanker庫實現(xiàn)郵件解析。該庫包含了郵件地址解析和郵件mime格式解析。

輸入以下命令:

pip install flanker

二、代碼實現(xiàn)

1.郵件頭

def emlAnayalyse(path):
    with open(path, 'rb') as fhdl:
        raw_email = fhdl.read()
        eml = mime.from_string(raw_email)
        subject = eml.subject
        eml_header_from = eml.headers.get('From')
        eml_header_to = eml.headers.get('To')
        eml_header_cc=eml.headers.get('Cc')
        eml_time = eml.headers.get('Date')
        # get_annex(eml, '1')
        eml_attachs=attachEml1(eml)
        eml_body = contentEml(eml)
        f = HTMLFilter()
        f.feed(eml_body)
        print(f.text)
def main():
    path='郵件名.eml'
    emlAnayalyse(path)
if __name__ == "__main__":
    main()

其中eml.header包含發(fā)送人,收件人,抄送人,時間等頭信息。

2.郵件正文

# 郵件正文
def contentEml(eml):
    # 判斷是否為單部分
    if eml.content_type.is_singlepart():
        eml_body = eml.body
    else:
        eml_body = ''
        for part in eml.parts:
            # 判斷是否是多部分
            if part.content_type.is_multipart():
                eml_body = contentEml(part)
            else:
                if part.content_type.main == 'text':
                    eml_body = part.body
    return eml_body

通過回調(diào)函數(shù),取出郵件正文部分

3.郵件附件

def attachEml1(eml):
    for part in eml.parts:
        if not part.content_type.is_multipart():    
            name = part.detected_file_name
            with open(name, 'wb') as annex:
                annex.write(part.body)

通過content_type.is_multipart()判斷是否為附件,將其保存下來。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • pyqt5 使用label控件實時顯示時間的實例

    pyqt5 使用label控件實時顯示時間的實例

    今天小編就為大家分享一篇pyqt5 使用label控件實時顯示時間的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python基礎(chǔ)之面向?qū)ο筮M階詳解

    Python基礎(chǔ)之面向?qū)ο筮M階詳解

    這篇文章主要為大家詳細介紹了Python基礎(chǔ)之面向?qū)ο筮M階,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Django框架多表查詢實例分析

    Django框架多表查詢實例分析

    這篇文章主要介紹了Django框架多表查詢,結(jié)合實例形式分析了Django框架實現(xiàn)多表查詢的外鍵、關(guān)聯(lián)、前向查詢、反向查詢等相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2018-07-07
  • Python打包后的exe還原成.py的實現(xiàn)步驟

    Python打包后的exe還原成.py的實現(xiàn)步驟

    本文主要介紹了Python打包后的exe還原成.py的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python利用for循環(huán)打印星號三角形的案例

    Python利用for循環(huán)打印星號三角形的案例

    這篇文章主要介紹了Python利用for循環(huán)打印星號三角形的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 淺談一下關(guān)于Python對XML的解析

    淺談一下關(guān)于Python對XML的解析

    這篇文章主要介紹了淺談一下關(guān)于Python對XML的解析,XML是一套定義語義標(biāo)記的規(guī)則,這些標(biāo)記將文檔分成許多部件并對這些部件加以標(biāo)識,需要的朋友可以參考下
    2023-05-05
  • python實現(xiàn)將文本轉(zhuǎn)換成語音的方法

    python實現(xiàn)將文本轉(zhuǎn)換成語音的方法

    這篇文章主要介紹了python實現(xiàn)將文本轉(zhuǎn)換成語音的方法,涉及Python中pyTTS模塊的相關(guān)使用技巧,需要的朋友可以參考下
    2015-05-05
  • python創(chuàng)建和刪除目錄的方法

    python創(chuàng)建和刪除目錄的方法

    這篇文章主要介紹了python創(chuàng)建和刪除目錄的方法,涉及Python操作目錄的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • 詳解Python3.1版本帶來的核心變化

    詳解Python3.1版本帶來的核心變化

    這篇文章主要介紹了詳解Python3.1版本帶來的核心變化,Python3.1的版本升級在3.0的基礎(chǔ)上帶來了更多影響以后版本的變化,本文分析了其中一些常用功能的改變,如Maketrans函數(shù)等,需要的朋友可以參考下
    2015-04-04
  • python文件比較示例分享

    python文件比較示例分享

    本文介紹了Python比較兩個文本文件內(nèi)容,如果不同, 給出第一個不同處的行號和列號,大家參考使用吧
    2014-01-01

最新評論