Inviare email da Gmail con PHP
Se abbiamo un account Gmail, e vogliamo essere abbastanza sicuri di che la nostra posta non arrivi in spam, possiamo usarlo per inviare email dal nostro server.
Sostanzialmente dobbiamo mandare email usando SMTP e le credenziali del nostro account.
Inoltre, nel nostro esempio, vedremo come farlo usando la libreria PHPMailer (ormai non ne faccio più a meno).
Cominciamo dalla nostra classe:
require_once 'class.phpmailer.php';
require_once 'class.smtp.php';
class Email {
private $email;
public function __construct() {
$this->email = new PHPMailer(TRUE);
$this->email->CharSet = 'UTF-8';
}
public function sendWithSmtpCredential($from, $fromName, $subject, $message, $host, $port, $username, $password, $arrayTo, $arrayBcc = NULL, $attach = NULL) {
try {
$this->email->IsSMTP();
$this->email->SMTPAuth = true;
$this->email->SMTPSecure = "ssl";
$this->email->Host = $host;
$this->email->Port = $port;
$this->email->Username = $username;
$this->email->Password = $password;
$this->email->SetFrom($from, $fromName);
$this->email->Subject = $subject;
$this->email->MsgHTML($message);
foreach ($arrayTo as $t) {
$this->email->AddAddress($t);
}
if ($arrayBcc != NULL) {
foreach ($arrayBcc as $b) {
$this->email->AddBCC($b);
}
}
if ($attach != NULL) {
$this->email->AddAttachment($attach);
}
$this->email->Send();
return 'EMAIL INVIATA';
} catch (phpmailerException $e) {
return $e->getMessage();
}
}
}
A questo punto per richiamare il tutto:
$email = new Email();
$from = 'mia_email@gmail.com';
$fromName = 'Gmail';
$subject = 'Prova da gmail';
$message = 'Questa è una email di prova da gmail!';
$host = 'smtp.gmail.com';
$port = 465;
$username = 'mia_email@gmail.com';
$password = 'LA_TUA_PASSWORD';
$arrayTo = array('a_chi_vuoi@email.it');
$email->sendWithSmtpCredential($from, $fromName, $subject, $message, $host, $port, $username, $password, $arrayTo);
E questo è quanto!
Abbiamo usato PHPMailer in collaborazione con il nostro account Gmail; la prima volta che invierete una email, non arriverà nulla.
Ma, a voi, verrà chiesto se volete autorizzare altri programma ad accedere al vostro account; vi ritroverete questa comunicazione nella vostra posta.
Se non autorizzate non sarete in grado di fare questa operazione; se autorizzate, potrete tornare indietro quando volete.
Enjoy!
php email phpmailer google gmail smtp
1 Commenti
non riesco a spedire l'attach. Carico il file nella cartella, ma poi non riesco a inserirlo nell'email. Cosa è probabile che sbagli? Comunqe gran bel codice, semplice e funzionante
05/04/2019