2015-06-09 87 views
0

我對使用imaplib從我的郵箱中獲取主題的腳本有困難。python email subject r n

這裏,是我的腳本:

for mail in response[0].split(): 
    typ, response = imap.fetch(mail, '(RFC822)') 
    for response_part in response: 
     if isinstance(response_part, tuple): 
      msg = email.message_from_string(response_part[1]) 
      for header in [ 'subject']: 
       print msg["subject"] 

,但我得到的輸出:

[astreinte] [2015.06.09 07:36:04] blurp : TIMESTAMP ALERT 
Disaster is PROBLEM 

我的問題是行尾之後 「TIMESTAMP ALERT」,如果我得到msg.items()我可以查看:

('Subject', '[astreinte] [2015.06.09 07:36:04] ankdo2ga22 : DOFUS TIMESTAMP ALERT\r\n Disaster is PROBLEM') 

所以,我不明白爲什麼\ r \ n存在?它是否存在於元數據中。但是當zabbix發送消息時不會添加。 我使用office365。

非常感謝您的幫助。

+0

你的意思是「雖然我有一條消息,其中有一行以主題結尾,當消息發送時,行結尾沒有出現」?不知道什麼zabbix和Office 365必須與此寫作 – holdenweb

+0

我非常確定它必須像這樣發送。這可能是一場意外,甚至在發送時都沒有注意到。你的Python是正確的。 – JosiahDaniels

+0

這看起來像標題摺疊。我會認爲電子郵件解析庫會爲你處理這個問題。我沒有爲你解決頭痛的問題。 – Max

回答

0

無恥插頭:嘗試使用我的圖書館:https://pypi.python.org/pypi/O365

如果您正在使用Office 365,應該讓你的生活變得更加簡單。

在回答你爲什麼是\ r \ n目前的問題,這是因爲Office365是基於Windows。由於傳統原因,Windows使用\ r \ n來換行。

+0

Umm,IMAP,SMTP和電子郵件格式都要求使用\ r \ n行結尾。這與Windows無關。 – Max

+0

真的嗎?我不知道。我立場糾正。 – Narcolapser

相關問題