Trimitere email cu autentificare prin SMTP

Trimitere email cu autentificare prin SMTP

La unul din proiectele din trecut am avut nevoie de o clasa pentru trimiterea email-urilor cu autentificare prin SMTP. Cineva mi-a recomandat clasa Mail din PEAR Framework. Clasa permite destul de multe operatiuni si pana in urma cu cateva zile am fost multumit de ea.

Recent, insa, am avut nevoie sa trimit email-uri catre mai multe adrese in Cc si Bcc. Aici aparea o anomalie si am gasit ca ar fi vorba de un bug inca nerezolvat (http://pear.php.net/bugs/bug.php?id=8047). Unii spun ca problema este din libraria Mail de la PEAR, altii spun ca problema ar fi la functia mail() din PHP si nu in libraria Mail. Oriunde ar fi problema, am consumat destul de mult timp incercand sa gasesc o solutie, insa fara succes. In final am renuntat la a mai utiliza aceasta librarie si am cautat solutii echivalente.

Am gasit in principal doua alternative: PHPMailer si SwiftMailer. Din moment ce ambele ofera aceleasi facilitati, am ales PHPMailer pe motivul ca avea o versiune lansata mai recent (versiunea 5.2.7 din 12 septembrie 2013).

Exemplu simplu:

require_once('PHPMailerAutoload.php');
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->IsHTML();
$mail->CharSet = 'UTF-8';

$mail->SMTPDebug = 0; // 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true;

//autentificare SMTP
$mail->Host = SMTP_HOST;
$mail->Port = 25;
$mail->Username = SMTP_USER;
$mail->Password = SMTP_PASS;

//adresa sursa
$mail->SetFrom($from_email, $from_name);

//adresa destinatie
$mail->AddAddress($to_email, $to_name);

//Subiect email
$mail->Subject = 'Email subject';

//Corpul mesajului
$mail->Body = 'Email content in HTML format';

//adaugare atasament
$mail->AddAttachment($filepath, $filename);

//Trimitere email
$mail->Send();

Pagina oficiala github:
https://github.com/PHPMailer/PHPMailer

 

Leave a Reply

Your email address will not be published. Required fields are marked *