functia mail() in PHP

nelamuriri de incepatori

Moderatori: Dan, principal

functia mail() in PHP

Mesajde danadmin » 14 Apr 2006, 00:15

Uneori, din motive de securitate si pentru a evita spamul gazdele dezactiveaza functia mail() din php.

De ce este dezactivata functia mail()?
Pentru ca, de cele mai multe ori php nu ruleaza ca cgi pe server, deci in momentul cand se trimit emailuri nu se poate identifica usor expeditorul.
Totusi asta nu inseamna ca nu se mai pot trimite emailuri de pe o pagina gazduita pe un server cu functia mail() din php dezactivata.

Iata dedesupt un script foarte simplu care inlocuieste fara probleme functia mail():

$connection = @fsockopen($server_de_mail, 25);
$res=@fgets($connection,256);
@fputs($connection, "EHLO $domeniu_gazduit\n");
$res=@fgets($connection,256);
@fputs($connection, "AUTH LOGIN\n");
$res=@fgets($connection,256);
@fputs($connection, base64_encode($user_de_email)."\n");
$res=@fgets($connection,256);
@fputs($connection, base64_encode($parola_de_email)."\n");
$res=@fgets($connection,256);
@fputs($connection, "MAIL FROM: $email_expeditor\n");
$res=@fgets($connection,256);
@fputs($connection, "RCPT TO: $email_destinatar\n");
$res=@fgets($connection,256);
@fputs($connection, "DATA\n");
$res=@fgets($connection,256);
@fputs($connection, "To: $email_destinatar\nFrom: $email_expeditor\nSubject: $subiect\nReturn-Path: <$email_expeditor>\n\n $mesaj\n.\n");
$res=@fgets($connection,256);
@fputs($connection,"QUIT\n");
$res=@fgets($connection,256);
@fclose($connection);

Cateva remarci:
In micul script precedent se vor inlocui variabilele cu ce aveti dvs. configurat pe site, de exemplu:
$server_de_mail="mail.domeniulmeu.eu";
Totusi prin setarea sa serverul poate sa nu va lase sa trimiteti emailuri decat daca completati astfel:
$server_de_mail="localhost";
Nu intru in amanunte de ce asta.

Este necesar sa creati , inainte de a rula acest script, evident o casuta de email pe pagina dvs. cu un nume de utilizator si o parola (de cele mai multe ori, numele de utilizator este chiar adresa de email);
Inlocuiti in scrptul de mai sus variabilele $user_de_email si $parola_de_email cu valorile respective.

In fine puteti testa acest script sa vedeti daca nu sunt erori la transmiterea mesajului. Daca nu trimite emailuri scoateti rand pe rand semnele "@" din fata diferitelor functii pentru a primi mesajele de eroare si vedea unde se blocheaza.

Daca nu va descurcati voi incerca sa raspund mesajelor dvs. daca le postati pe acest forum cu explicatii cat mai detaliate.

Intrebare
La gazduirea Nettissimo functia mail() este dezactivata?
Nu, la Nettissimo functia mail() este activa.
danadmin
Site Admin
 
Mesaje: 22
Membru din: 26 Apr 2003, 21:33
Localitate: Bucuresti

Înapoi la Gazduire: newbies

Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 3 vizitatori

cron