Jump to content
Aplicatiile pentru functia de "Helper" pentru serverul de Minecraft sunt deschise !

[Php] Transmiterea Mesajelor Prin E-Mail Folosind Php Si Pear


Guest dizzy

Recommended Posts

Limbajul PHP are integrat un client pentru protocolul SMTP (Simple Mail Transfer Protocol) şi un set de funcţii necesare pentru prelucrarea mesajelor primite de către un server de mail în vederea utilizării datelor conţinute. Cu ajutorul acestor funcţii se pot realiza aplicaţii interesante cum sunt administrarea listelor de discuţii, transmiterea unor ştiri tuturor utilizatorilor înscrişi pe o anumită listă, difuzarea de noutăţi cu privire la diverse apariţii etc.

Despre configurarea php

Pentru a putea utiliza funcţiile oferite de limbajul PHP pentru a trimite mesaje de poştă electronică, pe sistemele de operare din familia Windows sau *NIX este necesar să se seteze corect interpretorul PHP prin intermediul fişierului php.ini localizat în directorul în care este instalat sistemul de operare, respectiv în directorul /etc pe sistemele *NIX.

Funcţia mail() trimite mesajele prin intermediul unui server SMTP (Simple Mail Transfer Protocol) care poate fi găzduit de server-ul pe care este instalat interpretorul PHP sau de către un alt server accesibil interpretorului.

În fişierul php.ini trebuie adăugate variabilele având numele SMTP, smtp_port, sendmail_from şi sendmail_path, dacă acestea nu există, sau trebuie modificate valorile acestora.

- Variabila SMTP reprezintă ip-ul sau adresa server-ului de mesaje electronice. Dacă această variabilă lipseşte, atunci, pentru sistemele de operare din familia Windows se va încerca folosirea sistemului pe care se află instalat interpretorul pentru a transmite mesaje electronice, iar pentru sistemele de operare din familia *NIX se vor folosi setările implicite ale sistemului.

- Variabila smtp_port reprezintă portul pe care răspunde server-ul de mesaje electronice şi are valoarea implicită 25, pentru sistemele de operare din familia Windows sau setarea implicită a sistemului, pentru sistemele de operare din familia *NIX.

- Variabila sendmail_from reprezintă adresa de mail a expeditorului. Valoarea acestei variabile este folosită numai pentru sistemele de operare din familia Windows, iar pe sistemele de operare din familia *NIX se foloseşte setarea implicită a sistemului.

- Variabila sendmail_path reprezintă calea către aplicaţia care se ocupă de transmiterea mesajelor pe sistemele de operare din familia *NIX.

Funcţia mail

Această funcţie se foloseşte pentru a transmite un mesaj de poştă electronică la una sau mai multe căsuţe poştale. Funcţia mail are cinci parametri de tip şir de caractere, dintre care ultimii doi sunt opţionali.

- Primul parametru reprezintă o listă a tuturor căsuţelor poştale, separate prin caracterul "," care reprezintă destinatarii mesajului ce se va transmite. O căsuţă poştală din lista destinatarilor poate fi specificată utilizând unul dintre următoarele formate: "nume_destinatar <adresa_email>" sau "adresa_email", unde nume_destinatar reprezintă numele proprietarului căsuţei poştale adresa_mail şi poate fi şirul vid, iar adresa_email reprezintă adresa căsuţei poştale şi are formatul "nume_utilizator@domeniu", unde domeniu reprezintă numele server-ului care găzduieşte căsuţa poştala a utilizatorului nume_utilizator. În cazul utilizării primului format, pentru a specifica un destinatar pentru mesajul care se va trimite, este obligatorie folosirea caracterelor "<" şi ">" înainte, respectiv după câmpul adresa_email, iar dacă valoarea câmpului nume_destinatar conţine caracterul spaţiu este necesară utilizarea caracterului " înaintea acestuia şi după acesta. De exemplu, adresa "Alex <php4@as.ro>" este o adresă validă pentru un mesaj de poştă electronică.

- Al doilea parametru reprezintă subiectul mesajului care se va transmite.

- Cel de-al treilea parametru reprezintă conţinutul mesajului ce va fi transmis. Pentru a putea trimite mesaje care conţin ataşamente sau care au un tip de conţinut altul decât text (exemplu pagini HTML) este necesar ca valoarea acestui parametru să fie în format MIME (Multi-porpose Internet Mail Extension).

- Cel de-al patrulea parametru reprezintă o listă de linii de antet suplimentare, separate prin şirul de caractere "\r\n" (sfârşit de linie), pentru mesajul care va fi transmis.

- Ultimul parametru reprezintă o listă de opţiuni suplimentare pentru aplicaţia care va fi folosită pentru a efectua trimiterea mesajului şi este dependent de aceasta.

Funcţia returnează valoarea logică TRUE dacă s-a reuşit trimiterea mesajului şi valoarea logică FALSE în caz contrar. Un exemplu este prezentat mai jos:

mail('"Alex" <php4@as.ro>', "Mesaj de test", "Acesta este un mesaj de test") or die("Nu se poate trimite mesajul");

PEAR

PEAR (PHP Extension and Application Repository) reprezintă un proiect demarat de echipa de programatori PHP. Scopul acestui proiect este de a oferi o bibliotecă structurată de clase open-source tuturor utilizatorilor limbajului PHP. Această bibliotecă oferă, printre multe altele, un set de clase care pot fi folosite pentru a putea transmite mesaje electronice care să conţină ataşamente şi al căror conţinut poate fi în format HTML în loc de text. Acest set de clase poate fi descărcat de la adresa http://pear.php.net/package/Mail_Mime Pentru a putea folosi setul de clase Mail_Mime trebuie instalat mai întâi pachetul PEAR de bază care poate fi găsit la adresa http://pear.php.net/ .În continuare este prezentată clasa Mail_Mime, cea mai importantă clasă necesară pentru a codifica în format MIME astfel de mesaje.

Clasa Mail_Mime

Această clasă se foloseşte pentru a construi mesaje electronice în format MIME. Clasa Mail_Mime are şase funcţii membru a căror funcţionalitate este prezentată în continuare şi un constructor. Constructorul Mail_Mime crează o instanţă a clasei şi are un singur parametru de tip şir de caractere, care este opţional. Acest parametru reprezintă terminatorul de linie care va fi utilizat de către clasă pentru a încheia fiecare linie din mesaj şi are valoarea implicită "\r\n".

Funcţia Mail_Mime::setTxtBody

Această funcţie setează conţinutul text al unui mesaj pentru ca acesta să poată fi vizualizat în cadrul unui client de mail de tip text cum este cazul aplicaţiei mail prezentă pe sistemele de operare din familia *NIX. Această funcţie are doi parametri.

- Primul parametru este de tip şir de caractere şi reprezintă conţinutul mesajului sau numele fişierului care conţine mesajul în format text.

- Cel de-al doilea parametru este de tip logic şi este opţional. Dacă acest parametru are valoarea TRUE, atunci se va considera că primul parametru reprezintă numele unui fişier, iar dacă are valoarea FALSE, atunci se va considera că primul parametru reprezintă conţinutul mesajului. Valoarea implicită a acestui parametru este FALSE. Funcţia setTxtBody returnează valoarea logică TRUE dacă a reuşit să adauge la mesaj conţinutul şi o instanţă a clasei PEAR_Error în caz contrar.

Funcţia Mail_Mime::setHTMLBody

Această funcţie setează conţinutul HTML al unui mesaj pentru ca acesta să poată fi vizualizat în cadrul unui client de mail de tip HTML cum este cazul aplicaţiei OUTLOOK prezentă pe sistemele de operare din familia Windows. Această funcţie are doi parametri.

- Primul parametru este de tip şir de caractere şi reprezintă conţinutul mesajului sau numele fişierului care conţine mesajul în format HTML.

- Cel de-al doilea parametru este de tip logic şi este opţional. Dacă acest parametru are valoarea TRUE, atunci se va considera că primul parametru reprezintă numele unui fişier, iar dacă are valoarea FALSE, atunci se va considera că primul parametru reprezintă conţinutul mesajului. Valoarea implicită este FALSE. Funcţia setHTMLBody returnează valoarea logică TRUE dacă a reuşit să adauge la mesaj conţinutul şi o instanţă a clasei PEAR_Error în caz contrar.

Funcţia Mail_Mime::addHTMLImage

Această funcţie se foloseşte pentru a adăuga o imagine în corpul unui mesaj, în cazul în care conţinutul în format HTML utilizează imagini integrate. Această funcţie are patru parametri.

- Primul parametru este de tip şir de caractere şi reprezintă conţinutul imaginii sau numele fişierului care conţine imaginea.

- Al doilea parametru este de tip şir de caractere, este opţional şi reprezintă tipul conţinutului. Acest parametru are valoarea implicită "application/octet-stream". De exemplu, dacă imaginea este de tip GIF, acest parametru poate primi valoarea "image/gif".

- Cel de-al treilea parametru este de tip şir de caractere, este opţional şi reprezintă numele care va fi dat imaginii. În cazul în care primul parametru conţine imaginea, atunci este necesar ca acest parametru să apară, în caz contrar se va folosi numele fişierului transmis ca valoare pentru primul parametru.

- Cel de-al patrulea parametru este de tip logic şi este opţional. Dacă acest parametru are valoarea TRUE, atunci se va considera că primul parametru reprezintă numele unui fişier, iar dacă are valoarea FALSE, atunci se va considera că primul parametru reprezintă conţinutul unei imagini. Valoarea implicită a acestui parametru este TRUE.

Funcţia addHTMLImage returnează valoarea logică TRUE dacă a reuşit să adauge la mesaj conţinutul şi o instanţă a clasei PEAR_Error în caz contrar.

Funcţia Mail_Mime::addAttachement

Această funcţie se foloseşte pentru a adăuga un fişier la un mesaj şi are cinci parametri, dintre care primii patru au aceaşi semnificaţie cu cei de la funcţia precedentă. Ultimul parametru este de tip şir de caractere, este opţional şi reprezintă tipul codificării care va fi utilizată. Acest parametru are valoarea implicită "base64". Pentru fişiere ataşate care nu sunt binare (ex. fişiere executabile, arhive...) se poate folosi valoarea "quoted-printable".

Funcţia Mail_Mime::headers

Această funcţie se foloseşte pentru a adăuga linii de antet suplimentare la mesajul constituit de această clasă. Funcţia headers are un singur parametru de tip listă, care are ca şi chei numele câmpurilor antetelor şi ca valori, valorile acestor câmpuri. Funcţia returnează o referinţă la o listă de acelaşi tip care conţine, pe lângă elementele transmise ca parametru, şi elementele adăugate de această clasă, pentru ca mesajul să fie recunoscut cum trebuie de către un client de mail. Această funcţie nu poate fi apelată după apelul funcţiei Mail_Mime::get.

Funcţia Mail_Mime::get

Această funcţie se foloseşte pentru a obţine conţinutul mesajului electronic în format MIME, după ce acesta a fost construit. Funcţia get nu are nici un parametru şi returnează un şir de caractere care reprezintă conţinutul mesajului electronic codificat în format MIME.

Pentru a transmite un mesaj folosind funcţia mail prezentată şi această clasă, trebuie prelucrat şirul liniilor de antet returnat de funcţia Mail_Mime::headers astfel încât să se obţină un şir de caractere, iar conţinutul mesajului va fi constituit de şirul de caractere rezultat în urma apelării funcţiei Mail_Mime::get

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...