Python解碼郵件

2021-06-16 22:37:25 字數 1508 閱讀 7588

python端的**:

1 import email

23 fp = open("test.eml", "r")  #開啟eml檔案

4 msg = email.message_from_file(fp)

5 #msg = email.message_from_string(str) #也可以從字串建立

6 subject = msg.get("subject") # 取信件頭里的subject, 也就是主題

7 # 下面的三行**只是為了解碼象=?gbk?q?=cf=e0=c6=ac?=這樣的subject

8 h = email.header.header(subject)

9 dh = email.header.decode_header(h)

10 subject = dh[0][0]

11 print "subject:", subject

12 print "from: ", email.utils.parseaddr(msg.get("from"))[1] # 取from

13 print "to: ", email.utils.parseaddr(msg.get("to"))[1] # 取to

1415 # 迴圈信件中的每乙個mime的資料塊

16 i=0

17 textplain=''

18 texthtml=''

1920 for par in msg.walk():

21  if not par.is_multipart(): # 這裡要判斷是否是multipart,是的話,裡面的資料是無用的,至於為什麼可以了解mime相關知識。

22  name = par.get_param("name") #如果是附件,這裡就會取出附件的檔名

23  print name

24 25 

if name:

26  print '有附件'+name  #此處略,不對附件做處理,只處理文字內容

27  else:

28  #不是附件,是文字內容

29  #print par.get_payload(decode=true) # 解碼出文字內容,直接輸出來就可以了。

30  content_type=par.get_content_type()

31  if content_type in ['text/plain']:

32  textplain=par.get_payload(decode=true)

33  textplain.value=textplain  #這裡textplain.value和下面的texthtml.value在正常python中是不能正確執行的,是pytho4delphi中的物件

34  if content_type in ['text/html']:

35  texthtml=par.get_payload(decode=true)

36  texthtml.value=texthtml

37 38 fp.close()

39

Delphi使用Python來解碼郵件

估計很多人和我一樣,在使用indy的時候都會受不了眾多的bug,不得不邊使用邊修改。近來一直使用indy來收發郵件,從d7到d2007再到d2010,後來直接從svn中檢出乙個最新版本來,讓人驚喜的是新版本中修復了一些bug,讓人沮喪的是新版本中又重新引入了一些新的bug,唉,鍛鍊人啊。前幾天簡單看...

python 發郵件 python發郵件

python提供smtplib模組,該模組定義了乙個smtp客戶端會話物件,可用於使用smtp或esmtp偵聽器守護程式向任何網際網路機器傳送郵件。這是乙個簡單的語法,用來建立乙個smtp物件,稍後將演示如何用它來傳送電子郵件 import smtplib smtpobj smtplib.smtp ...

python 編碼解碼

一種編碼想要轉成另一種編碼,需要先解碼成萬國碼 unicode,然後再從unicode轉成其他編碼。例如gbk格式想要轉成utf 8,需要先按照 gbk 的格式 decode 成 unicode,再從 unicode 格式 encode 成utf 8 python3預設使用utf 8編碼,故不用宣告...