MIME Formatında Bir E-postanın Kodu Nasıl Çözülür

Bugün gönderilen e-postaların çoğu MIME (Çok Amaçlı İnternet Posta Uzantıları) biçimindedir. Bu, e-postaların düz metin ve zengin metin/HTML sürümleri, satır içi resimler ve ekler ile gönderilmesine olanak tanır. MIME uzantıları, standart RFC/822 biçiminde bir mesaja eklenebilir, böylece eski posta sistemleriyle geriye dönük uyumluluk sağlanır.

Aşama 1

E-posta mesajının içeriğini yükleyin.

Günün Videosu

Adım 2

"İçerik Türü" başlığını kontrol edin. İçerik türü çok parçalıysa (yani "çok parçalı/karışık", "çok parçalı/alternatif" vb.), iletinin ayrıştırılacak birden çok bölümü olacaktır. İçerik türü çok parçalı ise aşağıdaki adımlarla devam edin.

Aşama 3

İçerik Türü başlığı, MIME parça sınırlarını belirlemek için MIME mesajını oluşturan kod tarafından kullanılan benzersiz bir dize içermelidir. Örnek:

İçerik Türü: çok parçalı/karma; sınır="part_c7161025_fe8a_45f4_83ef_6befcfa5d021"

Bu durumda sınır dizesi "part_c7161025_fe8a_45f4_83ef_6befcfa5d021" şeklindedir.

4. Adım

Her MIME bölümü, önünde boş bir satırda iki tire ("--") bulunan sınır dizesiyle ayrılacaktır. Parça sınırlarını aramak için mesajı satır satır taramanız gerekecektir. Sınırlar arasındaki tüm metin

nihai CR/LF hariç bu MIME bölümünün bir parçasıdır.

Önemli: Son MIME bölümü, sınır dizesi ve ardından iki tire ile sona erecektir.

Örnek:

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 İlk MIME bölümü.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 İkinci MIME bölümü

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Son MIME bölümü.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021--

Adım 5

Her MIME parçasının daha sonra ayrıştırılması gerekir. Her MIME bölümünün formatı, orijinal RFC/822 formatlı mesaja benzer. Bir dizi başlık, ardından boş bir satır ve ardından gövde verilerini içerecektir.

6. Adım

Bir MIME parçasının kendisi, kendi "Content-Type" başlığı ve sınır dizgisi ile çok parçalı olabilir. Kodunuz, alt düğümlere ulaşana kadar MIME parçalarını özyinelemeli olarak ayrıştırmalıdır.

7. Adım

Bir MIME parçası basitçe bir ikili ek olabilir. Bu durumda, transfer kodlaması ile birlikte genellikle bir Dosya Adı başlığı sağlanır. BASE64, popüler bir kodlama türüdür. Bu durumda tüm MIME parça gövdesinin kodu BASE64 çözülmelidir. Örnek olarak, ekli bir JPG görüntüsünün ilk birkaç satırı burada verilmiştir:

=NextPart_003_01C755EF.43F2628D İçerik Türü: image/jpeg; name="testimage.jpg" İçerik-Aktarım-Kodlama: base64 İçerik-Açıklama: testimage.jpg İçerik-Yerleştirme: ek; dosyaadı="testimage.jpg"

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

Adım 8

İletinin HTML gövdesi, bir ContentType: Multipart/Alternative MIME bölümünün içinde ContentType: Text/Html olan bir MIME bölümünde olmalıdır.

9. Adım

İletinin düz metin gövdesi, ContentType: Text/plain ile bir MIME bölümünde, ContentType: Multipart/Alternative MIME bölümünün içinde olmalıdır.

İhtiyacınız Olan Şeyler

  • Bir bilgisayar dili bilgisi (yani C++, C#, VB, vb.).

  • RFC/822 formatlı bir e-posta mesajının formatı hakkında temel bilgi.

RFC 822'ye danışın http://www.ietf.org/rfc/rfc0822.txt? sayı=822 ve RFC 1341 http://www.ietf.org/rfc/rfc1341.txt? sayı=1341 daha fazla bilgi için. C# ile kodlama yapıyorsanız, şu adreste mükemmel bir ücretsiz kitaplık mevcuttur. http://www.codeproject.com/csharp/mime_project.asp.