Salut
Acel script foloseste functia mail() pt trimitere mesaje. Aceasta functie nu are parametri pentru SMTP, ci ar trebui inclusa si adaptata o clasa speciala, precum PhpMailer, sau PEAR::Mail.
Nu am folosit SMTP decat cu GMail si PHPMailer. Nu stiu cum functioneaza SMTP cu serverul de email de pe host.
Din ce am gasit pe net, daca acel server PHP are inclusa clasa PEAR::Mail, ai putea trimite prin SMTP folosind aceasta functie:
Cod: Selectaţi tot
function mailSMTP($to, $subject, $message, $from) {
require_once('Mail.php');
$host = "smtp.localhost"; // adresa server SMTP
$username = "you@yourdomain.com"; // cont mail SMTP
$password = "yourpassword"; // parola cont SMTP
$headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host, 'auth' => true, 'username' => $username, 'password' => $password)
);
$mail = $smtp->send($to, $headers, $message);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
return false;
}
else return true;
}
- Nu stiu daca functioneaza, sunt fara experienta in asa ceva.
Din ce stiu, trebuie sa ai un cont de email creat pe acel server. Se inlocuieste "localhost" cu adresa SMTP a acelui server.
Incluzi functia de mai sus in script si inlocuiesti codul:
Cod: Selectaţi tot
if (mail("$email", "Subiect: $subiect", $mesaj, $from))
Cu acest cod:
Cod: Selectaţi tot
if(mailSMTP($email, "Subiect: $subiect", $mesaj, $from))
Daca da eroare de genul:
require_once(Mail.php) [function.main]: failed to open stream: No such file or directory in ...
sau
Deprecated: Assigning the return value of new by reference is deprecated in ...
Acel server nu are clasa PEAR care trebuie pt. mail. In cazul asta, poti incerca sa adaptezi clasa PHPMailer, se gaseste gratuit pe net si are exemple de folosire.
- Sau vezi ce solutii poti gasi pe net cautand: " PHP mail SMTP ".