Apr 30
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?
Ultimi Commenti