Inviare email autenticate con gmail

PHP Soft! Commenta l'articolo

Oggi parliamo di come è facile inviare una email quando sono necessari utente e password, come per gmail.

L’operazione viene facilitata dall’uso del framework PEAR.
Installiamo PEAR e i pacchetti Mail, Mail_Mime, and Net_SMTP.

 # pear install -o Mail
 # pear install -o Mail_Mime
 # pear install -o Net_SMTP


Un semplice esempio di invio email:


require_once "Mail.php"; // pacchetto PEAR Mail
$from = "Mario Rossi <mario.rossi at gmail.com>";
$to = "Simona Verdi <simona.verdi athotmail.com>";
$subject = "Ciao!";
$body = "Ciao,\n\nCome va?\nCosa fai venerdì?\n";

$host = "smtp.gmail.com"; // smtp server
$username = "[email protected]";
$password = "KKKAAA123";

$headers = array ('From' => $from,  'To' => $to,  'Subject' => $subject);

$smtp = Mail::factory('smtp', array ('host' => $host, 'auth' => true,
 'username' => $username, 'password' => $password));

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
  echo("<p>" . $mail->getMessage() . "</p>");
}
else {
  echo("

Messaggio inviato con successo!

"); }

Se serve inviare una mail con il protocollo SSL è sufficiente cambiare la stringa contenente il server mail in questo modo:

$host = "ssl://smtp.gmail.com"; // smtp server

e abilitare open_ssl in php.ini.

Per inviare una email con allegato abbiamo bisogno del pacchetto Mail_mime:


require_once "Mail.php"; // PEAR Mail 
require_once ('Mail/mime.php'); // PEAR Mail_Mime 

$from = "Mario Rossi <[email protected]>";
$to = "Simona Verdi <[email protected]>";
$subject = "Ciao!";

$headers = array ('From' => $from,'To' => $to, 'Subject' => $subject);

$text = 'formato plain/text';//testo e html di una email.
$html = '<html><body>Versione HTML. <strong>questo è grassetto</strong></body></html>';

$file = './esempio.txt'; // allegato
$crlf = "\n";

$mime = new Mail_mime($crlf);
$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$mime->addAttachment($file, 'text/plain');

//non cambiare l'ordine delle chiamate
$body = $mime->get();
$headers = $mime->headers($headers);

$host = "ssl://smtp.gmail.com"; // smtp server
$username = "[email protected]";
$password = "KKKAAA123";

$smtp = Mail::factory('smtp', array ('host' => $host, 'auth' => true,
 'username' => $username,'password' => $password));

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
  echo("<p>" . $mail->getMessage() . "</p>");
}
else {
  echo("<p>Messaggio inviato con successo!</p>");
}

Semplice, no?

Scrivi un Commento

Home | Graffiti e Disegni | Educazione | Chi siamo | Blog | Progetti | Contatti
RSS Feed Comments RSS Accedi