詳解python實現郵件解析的方法

2022-09-21 16:45:12 字數 1648 閱讀 4422

目錄

如何通過python實現郵件解析?郵件的格式十分複雜,主要是mime協議,本文主要是從實現出發,具體原理可以自行研究。

通過mailgun開源的flanker庫實現郵件解析。該庫包含了郵件位址程式設計客棧解析和郵件mime格式解析。

輸入以下命令:

pip install fwww.cppcns.comlanker

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.he程式設計客棧aders.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包含傳送人,收件人,抄送人,時間等頭資訊。

# 郵件正文

def cwww.cppcns.comontenteml(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

通過**函式,取出郵件正文部分

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()判斷是否為附件,將其儲存下來。

本文標題: 詳解python實現郵件解析的方法

本文位址: /jiaoben/python/446637.html

Python傳送郵件實現基礎解析

一 python郵件模組簡介 email模組屬於內建模組,用來自定義郵件的中文 主題 日期 附件等資訊 smtplib模組屬於內建模組,它對smtp協議進行了簡單的封裝,能實現郵件傳送。二 郵件傳送步驟 建立smtp的操作物件並連線smtp目標伺服器,可以是163 qq等 使用自己的賬號登入目標伺服...

python 郵件解析 解析python傳送郵件

獲取郵件伺服器 email host smtp.163.com send user 163.com password x123456 定義傳送郵件主體 def send mail self,user list,sub,content user message mimetext content,sub...

Python傳送郵件封裝實現過程詳解

引言 在做介面測試hmmhunzaen的時候,我們不僅需要將測試結果以報告的形式展示,還需要將測試結果以郵件的形式傳送到需要知道的人手中。那麼如何傳送郵件呢?郵件傳送方式 測試結果以郵件形式傳送的方式有兩種 第一種 手動統計結果資料及報告,用郵件客戶端或web版形式傳送,比如 用qq郵箱,foxma...