>> Tecnologia elettronica >  >> Casa intelligente >> Vita smart

Come decodificare un'email in formato MIME

La maggior parte delle email oggi sono in formato MIME (Multipurpose Internet Mail Extensions). Questo permette email con versioni plain text e rich text/HTML, immagini inline e allegati. Le estensioni MIME possono essere aggiunte a messaggi in formato RFC/822 standard per compatibilità con vecchi sistemi di posta.

Passaggio 1

Carica il contenuto del messaggio email.

Passaggio 2

Controlla l'intestazione "Content-Type". Se il tipo è multipart (es. "multipart/mixed", "multipart/alternative"), il messaggio avrà più sezioni da analizzare. Se multipart, continua coi passaggi sotto.

Passaggio 3

L'intestazione Content-Type dovrebbe contenere una stringa univoca usata dal codice che ha generato il messaggio MIME per designare i confini delle parti MIME. Esempio:

Content-Type: multipart/mixed; boundary="part_c7161025_fe8a_45f4_83ef_6befcfa5d021"

La stringa boundary in questo caso è "part_c7161025_fe8a_45f4_83ef_6befcfa5d021".

Passaggio 4

Ogni parte MIME sarà separata dalla stringa boundary preceduta da due trattini ("--") su una riga vuota. Devi scansionare riga per riga cercando i confini. Tutto il testo tra i confini eccetto l'ultimo CR/LF fa parte di quella parte MIME.

Importante: L'ultima parte MIME finirà con la stringa boundary seguita da altri due trattini.

Esempio:

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Prima parte MIME.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Seconda parte MIME

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Ultima parte MIME.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021--

Passaggio 5

Ogni parte MIME va poi analizzata. Il formato è simile al messaggio RFC/822 originale. Conterrà una serie di intestazioni, una riga vuota, poi i dati del corpo.

Passaggio 6

Una parte MIME può essere essa stessa multipart, con propria intestazione "Content-Type" e stringa boundary. Il codice deve ricorsivamente analizzare le parti MIME finché raggiunge i nodi foglia.

Passaggio 7

Una parte MIME può essere un allegato binario. In questo caso di solito c'è un'intestazione Filename, con codifica di trasferimento. BASE64 è comune. In questo caso l'intero corpo della parte MIME deve essere decodificato BASE64. Esempio prime righe di un JPG allegato:

------=NextPart_003_01C755EF.43F2628D Content-Type: image/jpeg; name="testimage.jpg" Content-Transfer-Encoding: base64 Content-Description: testimage.jpg Content-Disposition: attachment; filename="testimage.jpg"

/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAQABQQDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA

Passaggio 8

Il corpo HTML del messaggio dovrebbe essere in una sezione MIME con ContentType: Text/Html, dentro una ContentType: Multipart/Alternative.

Passaggio 9

Il corpo plaintext dovrebbe essere in una sezione MIME con ContentType: Text/plain, dentro una ContentType: Multipart/Alternative.

Suggerimento

Consulta RFC 822 https://www.ietf.org/rfc/rfc0822.txt?number=822 e RFC 1341 https://www.ietf.org/rfc/rfc1341.txt?number=1341. Se programmi in C#, un'ottima libreria gratuita è su https://www.codeproject.com/csharp/mime_project.asp.

  1. Come inviare messaggi a Straight Talk via email
  2. Come controllare la mia email Charter
  3. Come allegare un file a un'email: guida universale
  4. Come usare la posta elettronica
  5. Come Creare un Account Email
  6. Come eliminare la cronologia email