A maioria dos e-mails enviados hoje usa formato MIME (Extensões de Correio Internet Multipropósito). Isso permite enviar e-mails com versões texto simples e rich text/HTML, imagens embutidas e anexos. Extensões MIME podem ser adicionadas a mensagem em formato RFC/822 padrão para compatibilidade retroativa com sistemas de e-mail antigos.
Carregue o conteúdo da mensagem de e-mail.
Verifique o cabeçalho "Content-Type". Se o tipo de conteúdo é multipart (ex: "multipart/mixed", "multipart/alternative", etc), a mensagem terá múltiplas seções para analisar. Se for multipart, continue com os passos abaixo.
O cabeçalho Content-Type deve conter string única usada pelo código que gerou a mensagem MIME para designar limites das partes MIME. Exemplo:
Content-Type: multipart/mixed; boundary="part_c7161025_fe8a_45f4_83ef_6befcfa5d021"
A string de limite neste caso é "part_c7161025_fe8a_45f4_83ef_6befcfa5d021".
Cada parte MIME será separada pela string de limite precedida por dois traços ("--") em linha em branco. Precisa escanear a mensagem linha a linha procurando os limites das partes. Todo texto entre os limites exceto o CR/LF final faz parte daquela parte MIME.
Importante: A última parte MIME terminará com a string de limite seguida por dois traços a mais.
Exemplo:
--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Primeira parte MIME. --part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Segunda parte MIME --part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Última parte MIME. --part_c7161025_fe8a_45f4_83ef_6befcfa5d021--
Cada parte MIME então precisa ser analisada. O formato de cada parte é similar à mensagem original formatada RFC/822. Conterá série de cabeçalhos, seguidos por linha em branco, depois dados do corpo.
Uma parte MIME pode ser multipart, com seu próprio cabeçalho "Content-Type" e string de limite. Seu código deve analisar recursivamente partes MIME até atingir nós filhos.
Uma parte MIME pode ser simplesmente anexo binário. Neste caso, cabeçalho Filename geralmente será fornecido, junto com codificação de transferência. BASE64 é tipo popular. Neste caso, todo corpo da parte MIME deve ser decodificado BASE64. Exemplo das primeiras linhas de imagem JPG anexada:
------=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
O corpo HTML da mensagem deve estar em seção MIME com ContentType: Text/Html, dentro de seção ContentType: Multipart/Alternative.
O corpo texto simples da mensagem deve estar em seção MIME com ContentType: Text/plain, dentro de seção ContentType: Multipart/Alternative.
Consulte RFC 822 https://www.ietf.org/rfc/rfc0822.txt?number=822 e RFC 1341 https://www.ietf.org/rfc/rfc1341.txt?number=1341 para mais informações. Se programa em C#, excelente biblioteca gratuita em https://www.codeproject.com/csharp/mime_project.asp.
Tecnologia Eletrônica © [www.351231.com]