2014-06-26 55 views
13

有沒有任何方法使用GMail API檢索HTML格式的消息正文?使用Gmail API在html中檢索電子郵件/消息正文

我已經通過message.get文檔不見了..試圖改變format PARAMS到fullminimal & raw。但是id沒有幫助。它返回郵件正文的純文本。


格式的值的描述:

「滿」:返回未使用的有效負載字段和原始場解析的電子郵件消息內容。 (默認)

「minimal」:僅返回電子郵件消息元數據(如標識符和標籤),但不會返回電子郵件標頭,主體或有效內容。

「原始」:將原始字段中的整個電子郵件內容作爲字符串返回,並且不使用有效載荷字段。這包括標識符,標籤,元數據,MIME結構和小的身體部位(通常小於2KB)。


我們不能簡單地獲得郵件正文以HTML形式或有任何其他方式做到這一點,所以當他們在我的應用程序或Gmail看到郵件顯示在屏幕上用很小的區別?

+0

是的。其中提供了HTML格式的電子郵件正文。我用過的這個庫是https://github.com/charlierguo/gmail。這工作,但只是想知道GMail API是否提供這個。 –

回答

17

同時包含HTML和純文本內容的電子郵件將包含多個有效內容部分,並且具有mimeType「text/html」的部分將包含HTML內容。你可以找到像這樣的邏輯:

var part = message.parts.filter(function(part) { 
    return part.mimeType == 'text/html'; 
}); 
var html = urlSafeBase64Decode(part.body.data); 
+0

好的。在python中我得到的是'msg_str = base64.urlsafe_b64decode(message ['raw']。encode('ASCII'))' 'mime_msg = email.message_from_string(msg_str)'。當我在html中呈現返回的消息mime_msg字符串時,它顯示純文本。它甚至沒有格式化。你能幫忙嗎? –

+0

@Kartik我試過你的,但沒有工作..我可以打印出消息['snippet'],但仍然無法獲得電子郵件正文 – littletiger

5

FULL和RAW都會根據你的喜好返回任何文本/ html部分。如果你使用FULL,你會得到一個解析後的表示,它將嵌套json字典,你必須通過它來查找文本/ html部分。如果您選擇RAW格式,您將在Message.raw字段中以RFC822格式獲得整個電子郵件。你可以用你選擇的語言將它傳遞給mime庫,然後用它來找到你感興趣的部分.Mime很複雜,你可能會有一個頂級的「多部分」類型的文本/ html作爲其中之一它的直接孩子,但沒有保證,這是一個任意深的樹結構! :)

相關問題