I cookie permettono il funzionamento di alcuni servizi di questo blog. Utilizzando questi servizi, accetti l'utilizzo dei cookie da parte nostra. Ok Rifiuta

Attenzione: a breve questo blog verrà dismesso e sarà attivo il nuovo a questo indirizzo.

Come inviare una mail in PHP con un proprio server SMTP

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.

Seguici su Facebook

Seguici su Google+

Renzo Cappelli

miafoto

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.

Commenti

NON CI SONO ANCORA COMMENTI.

Lascia il tuo commento