Inviare email da Form PHP verso Gmail | WorkAround

(FAQ Scritta da Marcello Ruta: marcelloruta.com)

Al fine di poter fare un sending di email attraverso un form mail, non e' necessario la modifica del file php.ini, ma si puo' adottare un workaround ovvero utilizzare la classe PHPMailer, scaricabile da qui http://code.google.com/a/apache-extras.org/p/phpmailer/

Per questo esempio di script e' stata usata la versione 5.2.1 della suddetta classe.

Script di esempio:

< ?php

require_once 'classes/class.phpmailer.php';
require_once 'classes/class.smtp.php';

$mailer = new PHPMailer(true);
$mailer->IsSMTP();

$nome = stripslashes($_POST['nome']);
$cognome = stripslashes($_POST['cognome']);
$email = trim($_POST['email']);
$note = stripslashes($_POST['note']);

$host = 'mail.yourdomain.com'; // mail.yourdomain.com o indirizzo IP del vostro server (es: 212.212.212.55)
$to = 'name@yourdomain.com';

try {

$mailer->Host = $host; // impostare il nostro SMTP server
$mailer->SMTPAuth = true; // abilitare l'autenticazione SMTP
$mailer->SMTPSecure = "ssl"; // impostare il prefisso del server SSL
$mailer->Host = "smtp.gmail.com"; // impostare GMAIL come SMTP server
$mailer->Port = 465;
$mailer->Username = "yourusername@gmail.com"; // mettere la vostra username che puo' essere yourusername@gmail.com oppure yourusername@nomedominio.com che sfrutta le google apps
$mailer->Password = "yourpassword"; // mettere la password dell'account
$mailer->AddCustomHeader('X-Mailer: MyApp v1.0.0');
$mailer->SetFrom($email, $nome." ".$cognome);
$mailer->AddAddress($to, 'yourdomain.com');
$mailer->Subject = 'Dati provenienti dal sito yourdomain.com';

// costruzione del corpo del messaggio

$mailer->Body .= "Nome: ".$nome."\r\n";
$mailer->Body .= "Cognome: ".$cognome."\r\n\r\n";
$mailer->Body .= "======================================="."\r\n\r\n";
$mailer->Body .= "Indirizzo email: ".$email."\r\n\r\n";
$mailer->Body .= "======================================="."\r\n\r\n";
if($note !== "") {

$mailer->Body .= $note."\r\n\r\n";
$mailer->Body .= "======================================="."\r\n\r\n";

}


if($mailer->Send()) {

header('location: yourpage.php');

}

} catch(phpmailerException $e) {

echo $e->errorMessage();

} catch(Exception $e) {

echo $e->getMessage();

}

?>

Hai trovato utile questa risposta?

 Stampa Articolo

Leggi anche

Posso personalizzare le mie pagine di errore?

Si, tramite il pannello di contrllo plesk nella cartella error_docs trovate tutti i file degli...

Ho cambiato i permessi al mio sito e ricevo errore 500 che devo fare?

Salve, in questo caso le ricordiamo che i permessi da configurare possibili sono...

Come posso trasferire i miei file tramite sftp?

Per trasferire i file in sftp tramite filezilla, basta inserire come hostname del server ftp la...

Spesso le emails inviate finisco in SPAM, come posso risolvere?

Le email possono finire in antispam per svariati motivi. Si consiglia l'utilizzo di un record SPF...

Cosa e' un cath-all?

Il cath-all serve per far si che una email inviata ad un indirizzo errato venga ugualmente...

Our official partners