PHPmailer, il salvavita per i form contact in PHP!

Capita molto spesso, soprattutto a chi non è espertissimo, di dover combattere per creare un form contatti in PHP per permettere agli utenti di contattarci direttamente dal nostro sito. Un form funzionale, che non crei troppi spam e che ci permette di ricevere agevolmente i nostri contatti.

Discorso che si complica ancor di più quando volete permettere ai vostri utenti di caricare foto,documenti da inviarvi tramite il form sul vostro sito.

Per agevolare la vita di ogni web designer è stato creato PHPmailer, una classe php contenente dei form già scritti, perfettamente funzionanti e che voi dovete solamente impostare a seconda delle vostre esigenze, modificare con i vostri css.

Per prima cosa potete scaricare phpmailer direttamente da qui.

Scompattate la cartella e cominciate ad apportare le vostre modifiche prima di caricarle tramite ftp sul vostro dominio.

Sotto vedrete degli esempi di codice per creare :

Invio di un messaggio in formato testo

Messaggio in HTML

Invio messaggio con allegato

Invio messaggio tramite SMTP

 

Formato Testo:

<?
include("class.phpmailer.php");
$mittente = "server@vostrodominio.it";
$nomemittente = "Richiesta Informazioni";
$destinatario = "info@vostrodominio.it";
$ServerSMTP = "smtp.vostrodominio.it"  //server SMTP 
$corpo_messaggio = "Grazie per averci contattato!!\n"
	."Cordiali Saluti,\nServizio Clienti";

$messaggio = new PHPMailer;
// utilizza la classe SMTP invece del comando mail() di php
$messaggio->IsSMTP(); 
$messaggio->SMTPKeepAlive = "true";
$messaggio->Host  = $ServerSMTP;
$messaggio->From   = $mittente;
$messaggio->FromName = $nomemittente;
$messaggio->AddAddress($destinatario); 
$messaggio->Body = $corpo_messaggio;
if(!$messaggio->Send()) {
	echo "errore nella spedizione: ".$messaggio->ErrorInfo;
} else {
	echo "messaggio inviato correttamente";
}
?>
 Messaggio in HTML:
<?
include("class.phpmailer.php");
$mittente = "server@vostrodominio.it";
$nomemittente = "Richiesta Informazioni";
$destinatario = "info@vostrodominio.it";
$ServerSMTP = "smtp.vostrodominio.it"  //server SMTP 
$corpo_messaggio = "Grazie per averci contattato!!\n"
	."Cordiali Saluti,\nServizio Clienti";

$messaggio = new PHPMailer;
//messaggio in HTML
$messaggio->IsHTML(true);
// utilizza la classe SMTP invece del comando mail() di php
$messaggio->IsSMTP(); 
$messaggio->SMTPKeepAlive = "true";
$messaggio->Host  = $ServerSMTP;
$messaggio->From   = $mittente;
$messaggio->FromName = $nomemittente;
$messaggio->AddAddress($destinatario); 
$messaggio->Body = "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML><body>".$corpo_messaggio."</body></html>";
$messaggio->AltBody = $corpo_messaggio;
if(!$messaggio->Send()) {
	echo "errore nella spedizione: ".$messaggio->ErrorInfo;
} else {
	echo "messaggio inviato correttamente";
}
?>



Messaggio con allegato:
<?
include("class.phpmailer.php");
$mittente = "server@vostrodominio.it";
$nomemittente = "Richiesta Informazioni";
$destinatario = "info@vostrodominio.it";
$ServerSMTP = "smtp.vostrodominio.it"  //server SMTP 
$corpo_messaggio = "Grazie per averci contattato!!\n"
	."Cordiali Saluti,\nServizio Clienti";

$messaggio = new PHPMailer;
// utilizza la classe SMTP invece del comando mail() di php
$messaggio->IsSMTP(); 
$messaggio->SMTPKeepAlive = "true";
$messaggio->Host  = $ServerSMTP;
$messaggio->From   = $mittente;
$messaggio->FromName = $nomemittente;
$messaggio->AddAddress($destinatario); 
$messaggio->Body = $corpo_messaggio;

$messaggio->AddAttachment("/allegati/moduloiscrizione.pdf");      // attach
$messaggio->AddAttachment("/allegati/istruzioni.pdf"); // attach

if(!$messaggio->Send()) {
	echo "errore nella spedizione: ".$messaggio->ErrorInfo;
} else {
	echo "messaggio inviato correttamente";
}
?>

Quando volete creare un form facendo leva su un smtp autenticato o dedicato vuol dire dovete inserire i vostri dati nella pagina in php. Ogni client di posta ha il suo smtp, ad esempio gmail avrà “smpt.gmail.com porta 465 ssl”, a seconda del vostro gestore potete trovarli agevolmente sul web.

Server SMTP Autenticato
In questo caso, il server SMTP autenticato è
smtphostauth.interhost.it

<?
include("class.phpmailer.php");
$mittente = "server@vostrodominio.it";
$nomemittente = "Richiesta Informazioni";
$destinatario = "info@vostrodominio.it";
$ServerSMTP = "smtphostauth.interhost.it"  //server SMTP autenticato Hosting Solutions
$corpo_messaggio = "Grazie per averci contattato!!\n"
	."Cordiali Saluti,\nServizio Clienti";

$messaggio = new PHPMailer;
// utilizza la classe SMTP invece del comando mail() di php
$messaggio->IsSMTP(); 
$messaggio->SMTPAuth   = true;     // abilita autenticazione SMTP
$messaggio->SMTPKeepAlive = "true";
$messaggio->Host  = $ServerSMTP;
$messaggio->Username   = "mio_utente";      // utente server SMTP autenticato
$messaggio->Password   = "mia_password";    // password server SMTP autenticato

$messaggio->From   = $mittente;
$messaggio->FromName = $nomemittente;
$messaggio->AddAddress($destinatario); 
$messaggio->Body = $corpo_messaggio;
if(!$messaggio->Send()) {
	echo "errore nella spedizione: ".$messaggio->ErrorInfo;
} else {
	echo "messaggio inviato correttamente";
}
?>
Server SMTP Dedicato
In questo caso, il server SMTP dedicato è del tipo
smtp.vostrodominio.it/.com/.eu etc.

<?
include("class.phpmailer.php");
$mittente = "server@vostrodominio.it";
$nomemittente = "Richiesta Informazioni";
$destinatario = "info@vostrodominio.it";
$ServerSMTP = "smtp.vostrodominio.it"  //esempio di server SMTP dedicato 
$corpo_messaggio = "Grazie per averci contattato!!\n"
	."Cordiali Saluti,\nServizio Clienti";

$messaggio = new PHPMailer;
// utilizza la classe SMTP invece del comando mail() di php
$messaggio->IsSMTP(); 
$messaggio->SMTPAuth   = true;     // abilita autenticazione SMTP
$messaggio->SMTPKeepAlive = "true";
$messaggio->Host  = $ServerSMTP;
$messaggio->Username   = "mio_utente";      // utente server SMTP dedicato
$messaggio->Password   = "mia_password";    // password server SMTP dedicato

$messaggio->From   = $mittente;
$messaggio->FromName = $nomemittente;
$messaggio->AddAddress($destinatario); 
$messaggio->Body = $corpo_messaggio;
if(!$messaggio->Send()) {
	echo "errore nella spedizione: ".$messaggio->ErrorInfo;
} else {
	echo "messaggio inviato correttamente";
}
?>

Share

Promozioni

Potrebbe interessarti



Francesco PC Academy
Francesco: Lavora come freelance, si occupa di Web Design & Marketing, Strategie Digitali, Blogging e docenza. Per PC Academy cura: il tutoraggio dei corsi online Scrittura Creativa e Sceneggiatura; le lezioni in aula sulla creazione del CV infografico e come Presentarsi alle Aziende in modo professionale; la redazione di molti articoli di questo portale.

Commenti