Повечето имейли, изпратени днес, са форматирани в MIME (Multipupose Internet Mail Extensions). Това позволява изпращането на имейли с обикновен текст и богат текст/HTML версии, вградени изображения и прикачени файлове. MIME разширенията могат да бъдат добавени към съобщение в стандартен формат RFC/822, така че да се постигне обратна съвместимост с по-стари пощенски системи.
Етап 1
Заредете съдържанието на имейл съобщението.
Видео на деня
Стъпка 2
Проверете заглавката "Content-Type". Ако типът съдържание е многочастен (т.е. "многочаст/смесено", "многочастно/алтернативно" и т.н.), съобщението ще има множество секции за анализиране. Ако типът съдържание е многочастен, продължете със стъпките по-долу.
Стъпка 3
Заглавката Content-Type трябва да съдържа уникален низ, използван от кода, генерирал MIME съобщението, за да обозначи границите на MIME част. пример:
Тип съдържание: многочастно/смесено; граница="part_c7161025_fe8a_45f4_83ef_6befcfa5d021"
Граничният низ в този случай е "part_c7161025_fe8a_45f4_83ef_6befcfa5d021".
Стъпка 4
Всяка MIME част ще бъде разделена от граничния низ, предшестван от две тирета ("--") на празен ред. Ще трябва да сканирате съобщението ред по ред, търсейки границите на частта. Целият текст между границите с изключение на крайния CR/LF е част от тази MIME част.
Важно: Последната MIME част ще завърши с граничния низ, последван от още две тирета.
пример:
--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Първа MIME част.
--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Втора MIME част
--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Последна MIME част.
--part_c7161025_fe8a_45f4_83ef_6befcfa5d021--
Стъпка 5
След това всяка MIME част трябва да бъде анализирана. Форматът на всяка част MIME е подобен на оригиналното форматирано съобщение RFC/822. Той ще съдържа поредица от заглавки, последвани от празен ред, след това данните за тялото.
Стъпка 6
MIME част може сама по себе си да бъде многочастна, със свой собствен заглавка "Content-Type" и ограничителен низ. Вашият код трябва рекурсивно да анализира MIME части, докато достигне дъщерните възли.
Стъпка 7
MIME част може просто да бъде бинарен прикачен файл. В този случай обикновено се предоставя заглавка на Filename, заедно с кодирането на трансфер. BASE64 е популярен тип кодиране. В този случай цялото тяло на MIME част трябва да бъде декодирано BASE64. Като пример ето първите няколко реда от прикачено JPG изображение:
=NextPart_003_01C755EF.43F2628D Тип съдържание: изображение/jpeg; name="testimage.jpg" Content-Transfer-Encoding: base64 Content-Description: testimage.jpg Content-Disposition: attachment; filename="testimage.jpg"
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjImjMYAQIYMJMJMJQ AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
Стъпка 8
HTML тялото на съобщението трябва да бъде в MIME секция с ContentType: Text/Html, вътре в ContentType: Multipart/Alternative MIME секция.
Стъпка 9
Текстът на съобщението трябва да бъде в MIME секция с ContentType: Text/plain, вътре в ContentType: Multipart/Alternative MIME секция.
Неща, от които се нуждаете
Познаване на компютърен език (напр. C++, C#, VB и др.).
Основни познания за формата на RFC/822 форматирано имейл съобщение.
Бакшиш
Консултирайте се с RFC 822 http://www.ietf.org/rfc/rfc0822.txt? номер=822 и RFC 1341 http://www.ietf.org/rfc/rfc1341.txt? номер=1341 за повече информация. Ако кодирате в C#, отлична безплатна библиотека е налична на адрес http://www.codeproject.com/csharp/mime_project.asp.