დღეს გაგზავნილი ელ.ფოსტის უმეტესობა ფორმატირებულია MIME (Multipupose Internet Mail Extensions). ეს საშუალებას აძლევს ელფოსტას გაიგზავნოს უბრალო ტექსტით და მდიდარი ტექსტით/HTML ვერსიებით, ინლაინ სურათებით და დანართებით. MIME გაფართოებები შეიძლება დაემატოს შეტყობინებას სტანდარტული RFC/822 ფორმატში, ასე რომ მიღწეულია უკან თავსებადობა ძველ ფოსტის სისტემებთან.
Ნაბიჯი 1
ჩატვირთეთ ელ.ფოსტის შეტყობინების შინაარსი.
დღის ვიდეო
ნაბიჯი 2
შეამოწმეთ სათაური "შინაარსის ტიპი". თუ კონტენტის ტიპი მრავალნაწილიანია (მაგ. "მრავალნაწილიანი/შერეული", "მრავალნაწილიანი/ალტერნატიული" და ა.შ.), შეტყობინებას ექნება რამდენიმე სექცია გასაანალიზებლად. თუ შინაარსის ტიპი მრავალნაწილიანია, განაგრძეთ ქვემოთ მოცემული ნაბიჯები.
ნაბიჯი 3
Content-Type სათაური უნდა შეიცავდეს უნიკალურ სტრიქონს, რომელიც გამოიყენება კოდის მიერ, რომელმაც შექმნა MIME შეტყობინება MIME ნაწილის საზღვრების აღსანიშნავად. მაგალითი:
შინაარსი-ტიპი: მრავალნაწილიანი/შერეული; boundary="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 ნაწილი შეიძლება უბრალოდ იყოს ორობითი დანართი. ამ შემთხვევაში, როგორც წესი, მიეწოდება ფაილის სახელის სათაური, გადაცემის დაშიფვრასთან ერთად. BASE64 არის პოპულარული კოდირების ტიპი. ამ შემთხვევაში მთელი MIME ნაწილის სხეული უნდა იყოს გაშიფრული BASE64. მაგალითად, აქ მოცემულია თანდართული JPG სურათის პირველი რამდენიმე სტრიქონი:
=NextPart_003_01C755EF.43F2628D შიგთავსის ტიპი: image/jpeg; name="testimage.jpg" Content-Transfer-Encoding: base64 Content-Description: testimage.jpg Content-Disposition: დანართი; filename="testimage.jpg"
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjMjIyMjIyMjIyMjIyMjIyMjIyMjMjMjIyMjIyMjIyMjIyMjIyMjMjIyMjIyMjIyMjIyMjA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAEACAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
ნაბიჯი 8
შეტყობინების HTML ტექსტი უნდა იყოს MIME განყოფილებაში ContentType: Text/Html, ContentType: Multipart/Alternative MIME განყოფილებაში.
ნაბიჯი 9
შეტყობინების ჩვეულებრივი ტექსტი უნდა იყოს MIME განყოფილებაში ContentType: ტექსტი/უბრალო, 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.