2014-06-26 35 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作为其中之一它的直接孩子,但没有保证,这是一个任意深的树结构! :)

相关问题