Netsons support  Assistenza
Netsons support
Netsons phone number  085 4510052
Netsons phone number

Domande frequenti (Knowledge Base)

Come invio email tramite PHP ?

 

Per poter inviare email tramite il linguaggio PHP esistono diversi modi. Tra I principali annoveriamo

l’ utilizzo della funzione mail()di PHP, o la classe phpmailer integrabili entrambe con l’ autenticazione SMTP effettuata sempre tramite le due funzioni appena dichiarate. La nostra trattazione riporterà il caso base di invio di email in formato testo ed autentica SMTP per la prima funzione ed in formato testo ed HTML per la classe phpmailer.

La necessità di inviare email nasce usualmente dal poter mettere a disposizione dei propri utenti un form di contatto o di inviare una notifica legata al verificarsi di determinate condizioni sul sito (es. iscrizione utenti).

Ricordiamo altresi che con l’ utilizzo dei CMS la gran parte dei plugin aggiuntivi designati all’ invio prevede già nativamente codice con queste funzionalità.


 

Funzione mail di PHP:

 

mail($destinatario, $oggetto, $messaggio)

 

Quella sopra riportata è la sintassi base. Ad essa può essere aggiunto un quarto elemento per definire gli headers del messaggio email che vogliamo inviare. Quindi la sintassi diventa come la seguente :

 

mail($destinatario, $oggetto, $messaggio, $headers)

 

 L’ aggiunta degli header permette di abbassare la probabilità che un eventuale server di posta ricevendo le email dal nostro script possano catalogarle come spam perché trovano come mittente il nome del server e non indirizzo email email legato all’ ipotetico servizio.

 

Vediamo di seguito un esempio di codice utilizzabile :

 

<?php

// definisco mittente e destinatario della mail

$nome_mittente = "Mio Nome";

$mail_mittente = "mittente@sito.com";

$mail_destinatario = "destinatario@sito.com";

 

// definisco il subject ed il body della mail

$mail_oggetto = "Messaggio di prova";

$mail_corpo = "Questo è un messaggio di prova per testare la mia applicazione";

 

// aggiusto delle intestazioni della mail

// In questa sezione che deve essere definito il mittente (From)

// ed altri eventuali valori come Cc, Bcc, ReplyTo e X-Mailer

$mail_headers = "From: " .  $nome_mittente . " <" .  $mail_mittente . ">\r\n";

$mail_headers .= "Reply-To: " .  $mail_mittente . "\r\n";

$mail_headers .= "X-Mailer: PHP/" . phpversion();

 

if (mail($mail_destinatario, $mail_oggetto, $mail_corpo, $mail_headers))

  echo "Messaggio inviato con successo a " . $mail_destinatario;

else

  echo "Errore. Nessun messaggio inviato.";

?>


Fonte di riferimento => https://www.mrwebmaster.it/php/funzione-mail_6466.html

 

La funzione mail di PHP non supporta nativamente l’ autenticazione SMTP. Sarà necessario nel caso volessimo usare l’ autenticazione SMTP avere a disposizione il pacchetto PEAR Mail installato. Forniremo così allo script le credenziali di una casella email per potersi autenticare.

 

Di seguito un esempio di codice con autentica SMTP:


<?php

 require_once "Mail.php";

 

 $mittente = "Mario Rossi  <mario.rossi@rossi.it>";

 $destinatario = "Tizio Caio <tizio.caio@caio.it>";

 $oggetto = "Salve";

 $messaggio = "Salvei,\n\Tutto bene?";

 

 $host = "smtp.tuo_server.ext";

 $username = "smtp_username";

 $password = "smtp_password";

 

 $headers = array ('From' => $mittente,

   'To' => $destinatario,

   'Subject' => $oggetto);

 $smtp = Mail::factory('smtp',

   array ('host' => $host,

     'auth' => true,

     'username' => $username,

     'password' => $password));

 

 $mail = $smtp->send($destinatario, $headers, $messaggio);

 

 if (PEAR::isError($mail)) {

   echo("<p>" . $mail->getMessage() . "</p>");

  } else {

   echo("<p>Messaggio Inviato con successo</p>");

  }

 ?>

 

Fonte di riferimento => https://www.lifewire.com/send-email-from-php-script-using-smtp-authentication-and-ssl-1171197

Ricordiamo che quando si parla di funzioni PHP è sempre doveroso consultare il sito di riferimento del consorzio produttore di questo potentissimo linguaggio di programmazione https://www.php.net nello specifico cercando per la funzione mail di PHP otteremo questo link https://php.net/manual/en/function.mail.php dove sono presenti numerosi altri esempi.

 


Classe PHPMailer :

 

Così come la semplice funzione mail() di PHP, la classe  PHPmailer ci permette di inviare email siano esse in formato testo, come visto per la funzione mail siano esse in formato HTML. Il primo step è sicuramente quello di scaricare questo script dopo averlo cercato in rete. Una volta scaricata la cartella dentro il nostro spazio di hosting potremo poi procedere a richiamarlo all’ interno del nostro codice con la funzione “require”.

 

require "phpmailer/class.phpmailer.php";

 

Di seguito il codice per l’ invio di una email di testo :

 

<?

//includiamo la classe PHPMailer

require "phpmailer/class.phpmailer.php";

 

//istanziamo la classe

$messaggio = new PHPmailer();

$messaggio->IsSMTP();

$messaggio->Host='Host SMTP';

 

//definiamo le intestazioni e il corpo del messaggio

$messaggio->From='info@mittente.it';

$messaggio->AddAddress('info@destinatario.it');

$messaggio->AddReplyTo('info@mittente.it');

$messaggio->Subject='Prova.';

$messaggio->Body=stripslashes('Ciao!!!!');

 

//definiamo i comportamenti in caso di invio corretto

//o di errore

if(!$messaggio->Send()){

  echo $messaggio->ErrorInfo;

}else{

  echo 'Email inviata correttamente!';

}

 

//chiudiamo la connessione

$messaggio->SmtpClose();

unset($messaggio);

?>

 
Fonte di riferimento => https://www.mrwebmaster.it/php/inviare-email-classe-phpmailer_7047_2.html

Le voci sotto riportate fanno riferimento all' invio tramite autenticazione SMTP, qualora non si intenda utilizzarla vanno commentate o rimosse.

 

$messaggio->IsSMTP();

$messaggio->Host='Host SMTP';

$messaggio->SmtpClose(); 

 

Qualora volessimo inviare in formato HTML andiamo ad inserire i TAG HTML sul testo che vogliamo formattare.

 

<?

require "phpmailer/class.phpmailer.php";

$messaggio = new PHPmailer();

$messaggio->IsSMTP();

 

//settiamo su true il metodo che indica alla classe

//il formato HTML

$messaggio->IsHTML(true);

$messaggio->Host='Host SMTP';

 

//intestazioni e corpo dell'email

$messaggio->From='info@mittente.it';

$messaggio->AddAddress('info@destinatario.it');

$messaggio->AddReplyTo('info@mittente.it');

$messaggio->Subject='Prova formato HTML';

 

//inseriamo i tag HTML e i CSS per formattare il messaggio

$messaggio->Body = '<html><body><head><style>';

$messaggio->Body .= '.up{background-color:#FF0000;color:#000000;font-size:12px}';

$messaggio->Body .= '.down{color:#FF0000;text-align:left;font-size:15px}';

$messaggio->Body .= '</style></head>';

$messaggio->Body .= '<center><table><tr><td class="up">Ciao!!</td></tr>';

$messaggio->Body .= '<tr><td class="down">ciao!!!</td></tr></table></center>';

$messaggio->Body .= '</body></html>';

 

//parte relativa all'invio

if(!$messaggio->Send()){

  echo $messaggio->ErrorInfo;

}else{

  echo 'Email inviata correttamente!';

}

$messaggio->SmtpClose();

unset($messaggio);

?>

 

Fonte riferimento => https://www.mrwebmaster.it/php/inviare-email-classe-phpmailer_7047_3.html

 

Ovviamente le possibilità di personalizzazione ed utilizzo sono numerose e vanno eseguite le dovute personalizzazioni in base al proprio hosting e soprattutto alle proprie esigenze.

 

 

 

 


Leggi anche


Visualizzato: 15570

Visualizzato: 12043

Visualizzato: 889

Visualizzato: 6838

Visualizzato: 7357

Netsons è partner di:

Netsons è partner di Cisco Netsons è partner di Dell Netsons è partner di vmWare Netsons è partner di cPanel Netsons è partner di Parallels Netsons è partner di R1Soft Netsons è partner di Cloudlinux Netsons è partner di Microsoft

Tutti i marchi citati appartengono ai rispettivi proprietari

Netsons.com Network | Copyright Netsons s.r.l. 2018 | Capitale sociale 100.000 € | CF/P.IVA 01838660684 | Tel +39 085 4510052 | Fax +39 085 9112033 | Autorizzazione Ministeriale PTT 0007112 del 30/01/2013


Questo sito utilizza cookie tecnici. Sono inoltre installati cookie tecnici di terze parti. Cliccando sul pulsante Accetto oppure continuando la navigazione del sito, l'utente accetta l'utilizzo di tutti i cookie. Per maggiori informazioni, anche in merito alla disattivazione, è possibile consultare l'informativa cookie completa.

Accetto