2014-06-26 14 views
13

Esiste un modo per recuperare il corpo del messaggio in formato html utilizzando l'API di GMail?Recupera corpo email/messaggio in html utilizzando l'API Gmail

ho già passato attraverso le message.get documentazione .. provato a cambiare le format params per full, minimal & raw. Ma id non ha aiutato. Restituisce il testo in chiaro del corpo della posta.


Descrizione dei valori formato:

"pieno": restituisce il contenuto analizzata messaggio di posta elettronica nel campo payload e il campo crudo non viene utilizzato. (predefinito)

"minimo": restituisce solo i metadati dei messaggi di posta elettronica quali identificativi ed etichette, non restituisce le intestazioni, il corpo o il carico utile dell'email.

"raw": restituisce l'intero contenuto del messaggio di posta elettronica nel campo non elaborato come stringa e il campo del payload non viene utilizzato. Ciò include gli identificatori, le etichette, i metadati, la struttura MIME e le parti del corpo piccolo (in genere meno di 2 KB).


non possiamo semplicemente ottenere il corpo del messaggio in formato HTML o c'è qualche altro modo per fare questo in modo che la posta viene visualizzato sullo schermo con differenza molto minimale quando vedono nella mia app o Gmail?

+0

sì. Lì fornisce il corpo dell'email in formato html. La libreria che ho usato è questa https://github.com/charlierguo/gmail. Funziona ma voglio solo sapere se l'API GMail lo fornisce o no. –

risposta

17

I messaggi di posta elettronica con contenuto HTML e testo normale avranno più parti del payload e la parte con il mimeType "text/html" conterrà il contenuto HTML. Puoi trovarlo con una logica del tipo:

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

Ok. In python quello che ottengo è 'msg_str = base64.urlsafe_b64decode (message ['raw']. Encode ('ASCII'))' 'mime_msg = email.message_from_string (msg_str)'. Quando eseguo il rendering del messaggio restituito, mime_msg stringa in html, visualizza testo semplice. Non è ancora formattato. Puoi per favore aiutare? –

+0

@Kartik Ho provato il tuo, ma non funziona..Posso stampare il messaggio ['snippet'], ma non riesco ancora a ottenere il corpo dell'email – littletiger

5

Sia FULL che RAW restituiranno qualsiasi testo/parti HTML in base a come desideri. Se usi FULL otterrai una rappresentazione analizzata che sarà annidata nei dizionari json che dovrai trascinare cercando la parte text/html. Se si opta per il formato RAW, si riceverà l'intera e-mail nel formato RFC822 nel campo Message.raw. Puoi passarlo alle librerie mime nella tua lingua scelta e poi usarlo per trovare la parte che ti interessa. Mime è complicato, probabilmente avrai un tipo "multipart" di livello superiore con text/html come i figli diretti ma senza garanzie, è una struttura ad albero arbitrariamente profonda! :)

Problemi correlati