Questo tutorial mostra come utilizzare SendGrid per inviare email da un'app in esecuzione su un'istanza di macchina virtuale (VM) Compute Engine.
Invio di posta dall'istanza con Postfix
Completa i passaggi che seguono per connetterti all'istanza sendgrid-tutorial e per eseguire SendGrid con Postfix.
Connettiti all'istanza sendgrid-tutorial tramite SSH
- In the Google Cloud console, go to the VM instances page.
- In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.
Configura SendGrid come inoltro SMTP con Postfix
Esegui i seguenti comandi nel terminale SSH per utilizzare SendGrid come inoltro SMTP con Postfix.
- Diventa un super user: - sudo su -
- Imposta un'umask protetta: - umask 077
- Installa l'agente di trasporto della posta Postfix: - Debian- apt update && apt -y install postfix libsasl2-modules - CentOS- yum install postfix cyrus-sasl-plain cyrus-sasl-md5 -y - Se richiesto, seleziona la configurazione Solo locale e accetta il nome di dominio predefinito. 
- Modifica le opzioni di configurazione di Postfix. Apri - /etc/postfix/main.cfper la modifica. Ad esempio, per utilizzare l'editor di testo- nano, inserisci il seguente comando:- nano /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 = [smtp.sendgrid.net]:2525 smtp_tls_security_level = encrypt smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd header_size_limit = 4096000 smtp_sasl_security_options = noanonymous- Le righe precedenti applicano il supporto SSL/TLS e configurano l'autenticazione SMTP per queste richieste. Un modulo SASL (Simple Authentication and Security Layer) gestisce l'autenticazione nella configurazione di Postfix. 
 
- Salva e chiudi il file. 
- Genera la mappa delle password SASL utilizzando la chiave API generata nella sezione Prima di iniziare. Sostituisci - your-api-keycon la chiave API che hai generato.- echo [smtp.sendgrid.net]:2525 apikey:your-api-key >> /etc/postfix/sasl_passwd 
- Utilizza l'utilità - postmapper generare un file- .db:- postmap /etc/postfix/sasl_passwd
- Verifica di avere un file - .db:- ls -l /etc/postfix/sasl_passwd*- -rw------- 1 root root ... /etc/postfix/sasl_passwd -rw------- 1 root root ... /etc/postfix/sasl_passwd.db 
- Rimuovi il file contenente le tue credenziali perché non è più necessario: - rm /etc/postfix/sasl_passwd
- Imposta le autorizzazioni per il file - .dbe verifica che l'altro file sia stato rimosso:- chmod 600 /etc/postfix/sasl_passwd.db ls -la /etc/postfix/sasl_passwd*- -rw------- 1 root root ... /etc/postfix/sasl_passwd.db 
- Ricarica la configurazione per caricare i parametri modificati: - Debian- /etc/init.d/postfix restart- CentOS- postfix reload
- Installa il pacchetto - mailutilso- mailx:- Debian- apt -y install mailutils - CentOS- yum install mailx -y
- Invia un'email di prova: - echo 'message' | mail -s subject email@example.com - Sostituisci quanto segue: - message: il corpo dell'email.
- subject: l'oggetto dell'email.
- email@example.com: l'indirizzo email a cui vuoi inviare un messaggio.
 - Nei log di sistema, cerca una riga di stato contenente - statuse il codice di risposta del server- (250)riuscita:- Debian- tail -n 5 /var/log/syslog- CentOS- tail -n 5 /var/log/maillog
Invio di posta con Java sulla tua istanza
Connettiti all'istanza sendgrid-tutorial tramite SSH
- In the Google Cloud console, go to the VM instances page.
- In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.
Crea e invia un'email
Le istruzioni riportate di seguito utilizzano la libreria client Java di SendGrid per creare e inviare un messaggio email tramite SendGrid. Puoi visualizzare l'esempio completo su GitHub.
Nel terminale SSH:
- Diventa un super user e imposta un'umask protetta: - sudo su - umask 077
- Installa Java e Maven: - apt -y update && apt -y install git-core openjdk-11-jdk maven
- Clona il repository GitHub: - git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
- Vai al codice sorgente principale dell'esempio: - cd /root/java-docs-samples/compute/sendgrid/src/main/java/com/example/compute/sendgrid
- Apri - SendEmailServelet.javaper la modifica.- Sostituisci - your-sendgrid-api-keycon la chiave API del tuo account SendGrid.
- Sostituisci - your-sendgrid-from-emailcon l'indirizzo email da cui vuoi inviare la posta.
- Sostituisci - destination-emailcon l'indirizzo email a cui vuoi inviare la posta.
 
- Vai alla directory principale del codice campione: - cd /root/java-docs-samples/compute/sendgrid
- Pacchettizza la classe Java: - mvn clean package
- Vai alla nuova directory - target:- cd target
- Imposta le autorizzazioni che ti consentono di eseguire il file jar: - chmod +x compute-sendgrid-1.0-SNAPSHOT-jar-with-dependencies.jar
- Esegui il selettore della versione Java alternativa: - update-alternatives --config java- Seleziona l'opzione - java-11-openjdk-amd64.
- Esegui il file Java: - java -jar compute-sendgrid-1.0-SNAPSHOT-jar-with-dependencies.jar
Invio di posta con Node.js sulla tua istanza
Per eseguire questo esempio, devi aver installato Node.js versione 7.6 o successive sull'istanza VM.
Connettiti all'istanza sendgrid-tutorial tramite SSH
- In the Google Cloud console, go to the VM instances page.
- In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.
Crea e invia un'email
Nel terminale SSH:
- Diventa un super user e imposta un'umask protetta: - sudo su - umask 077
- Aggiorna i repository dei pacchetti: - Debian- apt update- CentOS- yum update -y
- Installa le dipendenze Node.js: - Debian- apt -y install git-core curl build-essential openssl libssl-dev- CentOS- yum install git-core curl openssl openssl-devel -y yum groupinstall "Development Tools" -y
- Installa Node.js. Per impostazione predefinita, l'installazione installa anche npm: - Debian- curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - sudo apt -y install nodejs- CentOS- curl --silent --location https://rpm.nodesource.com/setup_14.x | bash -- Quindi, installa Node.js: - yum -y install nodejs
- Installa il client Node.js di SendGrid: - npm install sendgrid
- Clona il repository di esempio: - git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
- Vai alla directory che contiene l'esempio di SendGrid: - cd nodejs-docs-samples/compute
- Copia il file - sendgrid.js:- cp sendgrid.js sendmail.js
- Apri - sendmail.jsper la modifica.- Sostituisci - your-sendgrid-api-keycon la chiave API del tuo account SendGrid.
- Sostituisci - from-email@example.comcon l'indirizzo email da cui vuoi inviare la posta.
- Sostituisci - to-email@example.comcon l'indirizzo email a cui vuoi inviare la posta.
 
- Esegui il programma per inviare un'email tramite SendGrid: - node sendmail.js
Invio di posta da un Edge Transport Server Exchange
Puoi configurare Microsoft Exchange per inviare email in uscita con SendGrid configurando un connettore di invio in uscita. Per maggiori dettagli, consulta Esegui il deployment di Microsoft Exchange Server 2016 su Compute Engine.