Inviare email da Gmail con PHP

Mattepuffo's logo
Inviare email da Gmail con PHP

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!


Condividi

1 Commenti

  • luca

    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

Commentami!