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 questa risposta utile?

 Stampa Articolo

Leggi anche

Ho perso la password di Plesk, come faccio a ripristinarla?

Nel caso in cui la procedura di recupero password da plesk non vada a buon fine, e' possibile...

Come cambio l'ordine di apertura delle mie pagine web?

Basta aggiungere questa stringa nel file .htaccess DirectoryIndex index.html index.php Cosi'...

Come visualizzo le risorse CPU/RAM utilizzate?

Per visualizzare le risorse utilizzate bisogna andare in plesk, sitiweb e domini, e infine...

Ho problemi con le sessioni di autenticazione, come posso risolvere?

Il problema potrebbe verificarsi in quanto il php viene avviato in modalita' suPHP. Per ovviare...

Sono entrato nel mio ftp, ma vedo tante cartelle, dove inserisco i file del mio sito?

I file vanno inseriti dentro la cartella httpdocs per il www. mentre per i sottodomini vanno...

Our official partners