Mailjet è un servizio email globale di terze parti che offre agli utenti di Compute Engine un livello gratuito con 6000 email al mese. Inoltre, Mailjet offre anche:
- Un'API, un'interfaccia utente e un inoltro SMTP per inviare email di marketing e transazionali.
- Conformità alla normativa europea sulla privacy dei dati.
- Funzionalità per email e recapito, ad esempio impostazioni di priorità personalizzabili e gestione automatica della limitazione.
- Libreria di risorse API in Go, PHP, Node.js, Java, Python e Ruby per gestire subaccount, autenticazione, contatti, campagne, payload personalizzati, statistiche, eventi in tempo reale e analisi tramite l'API Event.
- Framework MJML integrato per creare modelli di email HTML adattabili.
- Assistenza 24 ore su 24, 7 giorni su 7 in più di 4 lingue.
- Possibilità di inviare messaggi email da domini diversi da
gmail.com
.
Questo documento descrive come configurare l'istanza VM per inviare email tramite Mailjet utilizzando i seguenti metodi:
- Tramite un
SMTP
inoltro con:
- Postfix
- Nodemailer su Node.js
- Direttamente tramite l'API Mailjet utilizzando Java
Per una documentazione completa di altre soluzioni email, inclusi esempi di integrazione con i server SMTP, le librerie e i framework più comuni, consulta la documentazione di Mailjet.
Prima di iniziare
Crea un nuovo account Mailjet nella pagina del partner Google* di Mailjet. Al momento della registrazione, fornisci il dominio e l'indirizzo email da cui vuoi inviare i messaggi.
Assicurati che l'indirizzo email da cui vuoi inviare le email sia stato convalidato.
Configura una regola firewall per consentire il traffico TCP sulla porta 2525.
* Google riceve un compenso per i clienti che si registrano per un account a pagamento.
Configurare Mailjet come inoltro SMTP
La configurazione di Mailjet come relay della posta ti consente di inoltrare i messaggi email a Mailjet per il recapito remoto.
Utilizzo di Postfix
Connettiti alla VM tramite SSH, sostituendo
instance-name
con il nome dell'istanza da cui vuoi inviare i messaggi email:gcloud compute ssh instance-name
Sulla VM, installa Postfix Mail Transport Agent. Quando richiesto, accetta le scelte predefinite per i nomi di dominio, ma seleziona la configurazione
Local Only
.Debian
sudo apt update && sudo apt -y install postfix libsasl2-modules
CentOS
sudo yum install postfix cyrus-sasl-plain cyrus-sasl-md5 -y
Modifica le opzioni di configurazione di Postfix. Le opzioni di configurazione di Postfix sono impostate nel file
main.cf
. Apri il file con l'editor di testo di tua scelta:sudo vi /etc/postfix/main.cf
Aggiorna il file:
Commenta le seguenti righe:
# default_transport = error # relay_transport = error
Aggiungi le seguenti righe alla fine del file:
relayhost = in-v3.mailjet.com:2525 smtp_tls_security_level = encrypt smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous
Queste righe applicano il supporto SSL/TLS e configurano l'autenticazione SMTP per queste richieste. Un modulo di livello di sicurezza e accesso semplice (SASL) gestisce l'autenticazione nella configurazione di Postfix.
Salva le modifiche e chiudi il file.
Crea la mappa delle password SASL con l'editor di testo di tua scelta:
sudo vi /etc/postfix/sasl_passwd
Al file
sasl_passwd
, aggiungi le seguenti righe per fornire le credenziali per Mailjet:in-v3.mailjet.com:2525 YOUR_API_KEY:YOUR_SECRET_KEY
Utilizza l'utilità
postmap
per generare un file.db
:sudo postmap /etc/postfix/sasl_passwd sudo ls -l /etc/postfix/sasl_passwd*
Dovresti ricevere la seguente risposta:
-rw------- 1 root root 68 Jun 1 10:50 /etc/postfix/sasl_passwd -rw------- 1 root root 12288 Jun 1 10:51 /etc/postfix/sasl_passwd.db
Dopodiché rimuovi il file contenente le tue credenziali perché non è più necessario:
sudo rm /etc/postfix/sasl_passwd
Imposta le autorizzazioni per il file
.db
:sudo chmod 600 /etc/postfix/sasl_passwd.db sudo ls -la /etc/postfix/sasl_passwd.db
Infine, ricarica la configurazione per caricare i parametri modificati:
Debian
sudo /etc/init.d/postfix restart
CentOS
sudo postfix reload
Testa la configurazione. Installa il pacchetto
mailx
omailutils
e testa la configurazione.Debian
sudo apt -y install mailutils
CentOS
sudo yum install mailx -y
Invia un messaggio di prova:
echo 'Test passed.' | mail -s 'Test-Email' -aFrom:from-email destination-email
Sostituisci quanto segue:
from-email
: un indirizzo email che è stato convalidato.destination-email
: l'indirizzo a cui inviare il messaggio email.
Cerca nei log di sistema una riga di stato contenente
status
e il codice di risposta del server corretta(250)
:Debian
sudo tail -n 5 /var/log/syslog
CentOS
sudo tail -n 5 /var/log/maillog
Se riscontri problemi di configurazione di Postfix con Mailjet, consulta le istruzioni di configurazione di Postfix di Mailjet.
Utilizzo di Nodemailer
Le seguenti istruzioni descrivono come utilizzare Mailjet con Node.js su Debian Wheezy.
-
Connettiti all'istanza tramite SSH:
gcloud compute ssh instance-name
-
Aggiorna i repository dei pacchetti:
user@test-wheezy:~# sudo apt update
-
Installa le dipendenze Node.js:
user@test-wheezy:~# sudo apt -y install git-core curl build-essential openssl libssl-dev
-
Clona il repository Node.js da GitHub:
user@test-wheezy:~# git clone https://github.com/nodejs/node
-
Cambia la directory impostandola su quella dell'albero di origine di Node.js:
user@test-wheezy:~# cd node
-
Configura il software del nodo per questo sistema operativo e questa macchina virtuale:
user@test-wheezy:~# ./configure
-
Crea Node.js, npm e oggetti correlati:
user@test-wheezy:~# sudo make
L'operazione può richiedere alcuni minuti.
-
Installa Node.js, npm e altro software nella posizione predefinita:
user@test-wheezy:~# sudo make install
-
Installa il pacchetto mailer:
user@test-wheezy:~# npm install nodemailer nodemailer-smtp-transport
-
Nella directory
node
, crea un nuovo file denominatosendmail.js
contenente il seguente codice JavaScript: -
Esegui il programma per inviare un messaggio email tramite Mailjet:
user@test-wheezy:~# node sendmail.js
- Connettiti all'istanza tramite SSH:
gcloud compute ssh instance-name
-
Aggiorna i repository dei pacchetti:
user@test-centos:~# sudo yum update -y
-
Installa le dipendenze Node.js:
user@test-centos:~# sudo yum install git-core curl openssl openssl-dev -y ... user@test-centos:~# sudo yum groupinstall "Development Tools" -y ...
-
Clona il repository Node.js da GitHub:
user@test-centos:~# git clone https://github.com/nodejs/node
-
Cambia la directory impostandola sulla struttura di origine di Node.js:
user@test-centos:~# cd node
-
Configura il software del nodo per questo sistema operativo e questa macchina virtuale:
user@test-centos:~# ./configure
-
Crea Node.js, npm e oggetti correlati:
user@test-centos:~# sudo make
L'operazione può richiedere alcuni minuti.
-
Installa Node.js, npm e altro software nella posizione predefinita:
user@test-centos:~# sudo make install
-
Installa il pacchetto mailer:
user@test-centos:~# npm install npm install nodemailer nodemailer-smtp-transport
-
Nella directory
node
, crea un nuovo file denominatosendmail.js
contenente il seguente codice JavaScript: -
Esegui il programma per inviare un messaggio email tramite Mailjet:
user@test-centos:~# node sendmail.js
Invio di email tramite l'API Mailjet con Java
Per altri esempi di utilizzo dell'API Mailjet, consulta la documentazione ufficiale di Mailjet.
-
Connettiti all'istanza tramite SSH:
gcloud compute ssh instance-name
-
Aggiorna i repository dei pacchetti e installa i pacchetti richiesti:
user@test-instance:~# sudo apt update && sudo apt install git-core openjdk-8-jdk maven
-
Clona il repository Java da GitHub:
user@test-instance:~# git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
-
Vai al codice sorgente principale dell'esempio, che si trova all'indirizzo:
/root/java-docs-samples/compute/mailjet/src/main/java/com/example/compute/mailjet
-
Configura le impostazioni di Mailjet. Consulta la documentazione relativa all'autenticazione di Mailjet per scoprire come sostituire le seguenti variabili:
your-mailjet-api-key
: una chiave API per il tuo account Mailjet.your-mailjet-secret-key
: la chiave secret corrispondente per il tuo account Mailjet.
-
Dalla directory
mailjet
, utilizza Maven per pacchettizzare la classe come file JAR:user@test-instance:~# mvn clean package
-
Assicurati di utilizzare OpenJDK 8:
user@test-instance:~# sudo update-alternatives --config java
-
Per inviare un'email: dalla directory di destinazione, esegui il file JAR con
gli indirizzi email del destinatario e del mittente come argomenti:
user@test-instance:~# java -jar compute-mailjet-1.0-SNAPSHOT-jar-with-dependencies.jar recipient-email sender-email
- Connettiti all'istanza tramite SSH:
gcloud compute ssh instance-name
-
Aggiorna i repository dei pacchetti e installa i pacchetti richiesti:
user@test-centos:~# sudo yum update && sudo yum install git-core openjdk-8-jdk maven
-
Clona il repository Java da GitHub:
user@test-centos:~# git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
-
Vai al codice sorgente principale dell'esempio, che si trova all'indirizzo:
/root/java-docs-samples/compute/mailjet/src/main/java/com/example/compute/mailjet
-
Configura le impostazioni di Mailjet. Per informazioni su come
sostituire le seguenti variabili, consulta la documentazione sull'autenticazione di Mailjet:
your-mailjet-api-key
: una chiave API per il tuo account Mailjet.your-mailjet-secret-key
: la chiave secret corrispondente per il tuo account Mailjet.
-
Dalla directory
mailjet
, utilizza Maven per pacchettizzare la classe come file JAR:user@test-centos:~# mvn clean package
-
Assicurati di utilizzare OpenJDK 8:
user@test-centos:~# sudo alternatives --config java
-
Per inviare un'email, dalla directory di destinazione, esegui il file JAR con
gli indirizzi email del destinatario e del mittente come argomenti:
user@test-centos:~# java -jar compute-mailjet-1.0-SNAPSHOT-jar-with-dependencies.jar recipient-email sender-email
Impostazioni SMTP di Mailjet
Ecco un riferimento rapido alle impostazioni SMTP specifiche di Mailjet utilizzate per configurare i client:
- Host: in-v3.mailjet.com
- Porta: 2525
Passaggi successivi
Esplora architetture di riferimento, diagrammi e best practice su Google Cloud. Consulta il nostro Cloud Architecture Center.