Chi sviluppa siti web si trova a volte a risolvere il problema dell’invio delle mail in PHP da un server web. Questo accade per inviare una mail di conferma di registrazione, di conferma ordine per un e-commerce ecc.
Per realizzare questa funzione in linguaggio PHP abbiamo a disposizione sul web un’ottima libreria chiamata PHPMailer che può essere usata anche con vari framework PHP come Laravel. In questo articolo vediamo però come personalizzarla per inviare una e-mail con il nostro server SMTP custom. Vediamo come si fa.
Innanzitutto importiamo nel codice della nostra pagina la libreria PHPMailer scaricandola da qui:
include("class.phpmailer.php");
Ora impostiamo il codice PHP per inviare la mail tramite il nostro server SMTP di Google (in questo caso, ma voi metterete i parametri del vostro server SMTP) in questo modo:
function inviomail($email, $oggetto, $messaggio, $path_allegato){
if(validate_email($email)){ // validate_email è una funzione che controlla la correttezza della mail
//invia la mail
$mail = new PHPMailer();
$mail->IsSMTP(); // Utilizzo della classe SMTP al posto del comando php mail()
$mail->SMTPAuth = true; // Autenticazione SMTP
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->SMTPSecure = 'ssl';
$mail->Username = "servercustom.noreply@gmail.com"; // Nome utente SMTP autenticato
$mail->Password = "password"; // Password account email con SMTP autenticato
$mail->Priority = 1; // Highest priority - Email priority (1 = High, 3 = Normal, 5 = low)
$mail->From = "servercustom.noreply@gmail.com";
$mail->FromName = "E-mail di prova - server custom";
$mail->AddAddress($email);
$mail->IsHTML(true);
$mail->Subject = $oggetto;
$mail->Body = $messaggio;
$mail->AltBody = "";
$mail->AddAttachment($path_allegato);
if(!$mail->Send()){
echo "errore nell'invio della mail: ".$mail->ErrorInfo;
return false;
}else{
return true;
}
}else{
echo "La mail non è stata inviata a causa dell'indirizzo errato o un problema di connessione!";
}
}
Con questo semplice codice riusciremo a inviare l’email in modo semplice e veloce all’indirizzo destinatario.