Site icon Arena IT

Functia mail

In afara de posibilitatea trimiterii e-mail-urilor din consola linuxului cu telnet, poti trimite e-mail „anonim” si cu ajutorul functiei mail(); din PHP. In acest articol nu voi face un script care sa trimita mail anonim din php, ci voi explica functia mail();

Functia mail nu este activa pe multe dintre hosturile free, iar daca este activa ori nu poti folosi de cat primele 3 argumente (iar cel care primete mailul, il va primi de la root@numelehostului.term) ori o poti folosi de „n” ori pe zi.

Sintaxa:

mail(pentru_cine, subiectul_mesajului, mesajul, informatii_adtitionale, parametrii_aditionali);

* pentru_cine – primul parametru reprezinta un string cu e-mail-ul catre care vrei sa trimiti mesajul. Exemplu: sefu@firma_la_care_lucrez.ro
* subiectul_mesajului – Subiectul e-mailului pe care il trimiti (cel care iti apare la „Subject” cand citeste mailul). Exemplu: Sunt racit.
* mesajul – textul mesajului. Fiecare linie (paragraf) trebuie sa fie separata prin LF (\n – adica un enter), iar recomandat este ca o linie sa nu aiba mai mult de 70 de caractere.[/b]
* informatii_adtitionale – [argument optional ] – Un sir cu informatii despre persoala / e-mail-ul de la care se trimite mesajul (aici e partea interesanta: poti pune ce nume si ce e-mail vrei). Parametrul trebuie sa contina cuvantul From (cand nu este mentionat argumentul 4 in functie, acesta va lua valoarea default, mentionata in php.ini). Fiecaer linie a acestui argument trebuie sa se termine cu CRLF (\r\n) (read – newline).

Pun pariu ca nu ati prea inteles mare lucru din ce am spus mai sus, haideti sa facem un mic script care sa trimita un e-mail anonim:

A. Formularul HTML:

- E-mail destinatar

- E-mail emitator

- De la cine

- Subiect

Mesaj:

B. fisierul email.php:

'."\r\n"; //, am terminat o linie, am pus read si newline (\r\n).
// 2. replica (reply) unde sa o trimita
$aditional .= 'Reply-To: '.$emisie; //, nu am mai pus \r\n pentru ca este ultia linie

//iar acum trimitem mesajul cu ajutorul functiei mail

mail($destinatie, $subiectul, $mesaj, $aditional);

// acum sa redirectionam userul inapoi
header('location: '.$_SERVER['HTTP_REFERER']);

// citeste si sfarsitul articolul

} else {

//mesajul de eroare
echo 'Te rog posteaza un e-mail mai intai !';

}

?>

!MENTIUNI:

1. Nu tineti cont in mesaj sa schimbati taguri de genul „<", ">” cu <, > si asa mai departe. Ele sunt schimbate de motorul de mail al celui care primeste (daca nu stie sa faca asta, e vina lui).

2. Cel mai bine ar fi sa copiati ce am scris eu la email.php intr-un editor text cu sublinieri pentru sintaxa (astfel va fi mai lizibil)

!DE VAZUT:

* Functia mail();
* Functia stripslashes();
* Functia strlen();

* Expresii regulare.

Exit mobile version