Inviare email transazionali con Brevo / ex Sendinblue
Da poco tempo Sendinblue ha completato un'operazione di rebranding e ora si chiama Brevo, per riflettere una serie di aggiornamenti alla piattaforma che ora oltre a permettere l'invio di mail permette anche di gestire il processo di vendita creando relazioni con i clienti mediante diversi canali (tracking dei lead, automation, prenotazione meeting, ...).
Per quanto riguarda l'automation una funzionalità estremamente utile è quella dell'invio di mail transazionali, ad esempio da inviare a un cliente dopo un acquisto sulla nostra piattaforma ecommerce o magari dopo una settimana per richiedere una recensione per l'acquisto fatto.
Con PHP e con le librerie Sendinblue (su queste hanno ancora mantenuto il vecchio nome) è piuttosto semplice.
Immaginiamo di inviare un ringraziamento per l'acquisto fatto a un cliente con una richiesta di recensione.
MODELLI
Come prima cosa è possibile dalla piattaforma creare un modello per la mail da inviare, in modo da gestirlo più comodamente online.
Dal menu Transazionale -> Email -> Modelli è possibile crearne diversi per le varie esigenze e ad ognuno viene assegnato un ID (ci servirà dopo).
API KEY
Dal menu del proprio profilo è ora necessario creare una API KEY.
Cliccando sull'icona del profilo selezionare "SMTP e API"; una volta aperta la pagina spostarsi nel tab "Chiavi API" e crearne una.
Al momento in cui scrivo una volta creata non è più possibile copiarla, quindi quando appare meglio copiarla subito e salvarla in un posto sicuro!
Ovviamente è comunque possibile creare più chiavi API senza problemi.
CODICE
A questo punto possiamo iniziare lato applicazione. Come prima cosa con composer scarichiamo la libreria:
composer require sendinblue/api-v3-sdk "8.x.x"
e in PHP con poche righe di codice possiamo inviare la nostra prima mail.
Il codice è abbastanza semplice, con i commenti ho definito i vari passaggi:
require_once('./vendor/autoload.php');
//definizione API KEY
define('BREVO_API_KEY', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
//inizializzazione API
$config = SendinBlue\Client\Configuration::getDefaultConfiguration()->setApiKey('api-key', BREVO_API_KEY);
$apiInstance = new SendinBlue\Client\Api\TransactionalEmailsApi(
new GuzzleHttp\Client(),
$config
);
//creo un nuovo oggetto SendSmtpEmail
$sendSmtpEmail = new \SendinBlue\Client\Model\SendSmtpEmail();
//seleziono il template da usare
$sendSmtpEmail['templateId'] = 1;
//qui viene definito il mittente
$sendSmtpEmail['sender'] = [
'email' => 'info@mariorossi.it',
'name' => 'Mario Rossi'
];
//inviamo la mail a un singolo contatto in questo caso
//ATTENZIONE: il parametro "to" è un array multidimensionale
$sendSmtpEmail['to'] = array(
[
'email' => 'mailcliente@testdomain.com'
]
);
//a questo punto è possibile procedere all'invio della mail
try {
$sendSmtpEmailresult = $apiInstance->sendTransacEmail($sendSmtpEmail);
if ($sendSmtpEmailresult) {
print_r($sendSmtpEmailresult); //risultato della chiamata API
}
} catch (Exception $e) {
echo 'Exception when calling TransactionalEmailsApi->sendTransacEmail: ', $e->getMessage(), PHP_EOL;
}

Commenti