A volte è necessario inviare una mail in PHP, per esempio, per inviare una mail di conferma di registrazione o di conferma ordine per un e-commerce. Per realizzare questa funzione in PHP abbiamo a disposizione un'ottima libreria di cui abbiamo già parlato in questo articolo. In questo caso però la libreria va personalizzata con i parametri del nostro server 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 pulito ed efficente all'indirizzo destinatario.
Sono un appassionato di informatica, mi dedico allo sviluppo web e alla gestione dei sistemi web-based: realizzo siti e progetto software gestionale per privati e aziende. Ho tanta passione per tutto quello che riguarda il web e le nuove tecnologie, lavoro bene in team e collaboro con aziende e professionisti di settore.