Mailgun / PHPMailer

Ce este Mailgun

Mailgun este o soluție specializată de trimitere a email-urilor. Se folosește în special pentru livrarea mesajelor direct în Inbox. Alte avantaje ar fi posibilitatea verificării mesajelor livrate, a mesajelor deschise, vizualizarea mesajelor întoarse cu eroare și chiar lista completă a acțiunilor.

Cum se folosește?

Mailgun se folosește doar pentru trimiterea de mesaje și poate fi folosit concomitent cu alte modalități de trimitere inclusiv prin intermediul abonamentului de găzduire existent.

Mesajele primite vor funcționa ca și până acum. Adresele de email existente nu se modifică în nici un fel.

Configurare inițială

  • creare cont gratuit la Mailgun
  • adăugarea domeniului/domeniilor pentru care doriți să trimiteți email
  • modificare DNS pentru trimitere (SPF/DKIM): 2 înregistrări TXT
  • modificare DNS pentru urmărire: o înregistrare CNAME

Ambele modificări DNS le pot face furnizorul de servicii DNS sau de găzduire web, trebuie doar să le transmiteți informațiile DNS afișate pe pagina de la Mailgun.

Trimiterea folosind Outlook/Thunderbird/…

  • Serverele SMTP de la Mailgun ascultă pe porturile 25, 587 și 465 (TLS)
  • Datele de conectare le găsiți pe pagina aferentă domeniului adăugat

Trimiterea din PHPMailer

Puteți trimite email-urile prin Mailgun folosind orice bibliotecă SMTP. Mai jos puteți vedea o exemplificare folosind PHPMailer.

Se copiază PHPMailer.zip sau minim următoarele fișiere în include_path:

require 'PHPMailerAutoload.php';

$mail = new PHPMailer;

$mail->isSMTP();                                      // folosește SMTP
$mail->Host = 'smtp.mailgun.org';                     // SMTP server
$mail->SMTPAuth = true;                               // SMTP authentication
$mail->Username = 'postmaster@example.com';           // SMTP username
$mail->Password = 'secret';                           // SMTP password
$mail->SMTPSecure = 'tls';

$mail->From = 'from@example.com';
$mail->FromName = 'Mailer';
$mail->addAddress('ellen@example.com');               // Adaugă destinatar
//$mail->addAddress('josh@example.net', 'Josh Adams');  // Destinatar cu nume
//$mail->addReplyTo('info@example.com', 'Information');
//$mail->addCC('cc@example.com');
//$mail->addBCC('bcc@example.com');

$mail->WordWrap = 50;                                 // 50 caractere pe linie
//$mail->addAttachment('/var/tmp/file.tar.gz');         // Adaugă atașament
//$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Atașament cu nume
$mail->isHTML(true);                                  // email in format HTML

$mail->Subject = 'Subiectul mesajului';
$mail->Body    = 'Corpul mesajului <b>cu bold!</b>';
$mail->AltBody = 'Mesaj alternativ pentru programele ce nu știu HTML';

if(!$mail->send()) {
  echo 'Mesajul nu a putut fi trimis.';
  echo 'Eroare: ' . $mail->ErrorInfo;
  exit;
}

echo 'Mesaj trimis.';