MIME headers si cum adaugam un atasament intr-un email
Ideea articolului este una cat se poate de practica. Voi incerca sa explic ce trebuie facut pentru a putea adauga “manual” un atasament unui email. Celor care citesc si deja s-au intrebat care e scopul unei astfel de actiuni le recomand sa nu citeasca si continuare, pentru ca nu li se adreseaza acest articol.
Aplicatiile adaugarii unui atasament sunt suficient de multe, am sa mentionez una singura: crearea acelor footere “corporatiste” cu poze si alte minunatii.
Asadar sa presupunem ca vrem sa cream un astfel de footer, in HTML, cu o poza frumoasa care sa fie reprezentativa pentru mailurile trimise prin serverul pe care vrem sa facem configurarea.
Strict pentru partea de disclaimer/footer se poate folosi altermime fara nici o problema. Problema este ca daca dorim sa si adaugam o imagine (cea care va aparea in footer), lucrurile se complica.
Solutia este sa umblam in corpul mesajului si sa ne adaugam atasamentul asa cum vrem. Usor de spus, dar ce ne facem cand dam peste “Content-Type: multipart/mixed;
boundary=”_004_A8EC770875E1AE4A84851C05B6F730038D98AEFF4A_”"… ?
Ei bine, tocmai am facut cunostinta cu MIME. Nu voi intra in detalii inutile scopului articolului ci ma voi rezuma la esential. Ne intereseaza acel “boundary=”. Tot ce este intre ghilimele dupa semnul egal reprezinta un separator (unic pentru un mesaj) care desparte diversele atasamente/parti ale mesajului. Deci “_004_A8EC770875E1AE4A84851C05B6F730038D98AEFF4A_” este boundary-ul pe care trebuie sa-l cautam in cadrul mesajului pentru a ne putea introduce atasamentul.
O zona de continut MIME incepe cu doua semne “-” si este succedata de acel boundary, adica asa:
“–_004_A8EC770875E1AE4A84851C05B6F730038D98AEFF4A_” (desigur, exceptand ghilimelele). Zona tine pana in momentul intalnirii unui alt marcaj de acelasi fel, sau pana la intalnirea marcajului de final care este format din boundary succedat de doua semne “-”, adica asa: “_004_A8EC770875E1AE4A84851C05B6F730038D98AEFF4A_–”.
Cam asta e tot in privinta structurii unui email, cel putin asta e tot ce ne intereseaza pe noi.
Daca va intrebati totusi cum adaugam atasamentul, acum vine si raspunsul:
Atasamentul nostru se poate adauga exact inaintea marcajului final despre care am vorbit. Vom avea si exemplu la final. Ce trebuie stiut este ca un atasament intr-un email este codat base64. Asadar daca vrem sa introducem un fisier JPEG, va trebui intai sa-l convertim in base64 (uuencode -m, de exemplu) si abia apoi sa-l adaugam folosind o secventa de genul:
Content-Type: image/jpeg; name=”sign.jpg”
Content-Description: sign.jpg
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=”sign.jpg”
Content-ID: <sign.jpg@00000000>
Dupa cele de mai sus urmeaza base64 encodingul corespunzator fisierului sign.jpg
Toate acestea fiind realizate, avem un mesaj la care s-a adaugat si atasamentul iar el poate fi foarte frumos afisat din HTML-ul corespunzator footerului.
Leave a Reply