Gmail Workspace / Gmail Suite invia e-Mail dal server usando msmtp

Siamo in procinto di migrare a Gmail, per poter delegare la gestione di un server di posta.

Abbiamo usato ssmtp sul nostro server per inviare e-mail prima, usando il nostro server di posta (Zimbra).

Ora sono riuscito a far funzionare Gmail Workspace, e vorrei condividere alcune indicazioni su come farlo.

Questo viene fatto su un sistema Debian / Ubuntu.

Impostare l'autenticazione a 2 fattori

Accedi al tuo account Google:

https://myaccount.google.com/

Clicca sulla scheda Sicurezza e scorri fino a Verifica in 2 passaggi, abilitala.

immagine

Probabilmente dovrai fornire il tuo numero di cellulare a Google o scegliere un'altra opzione qui.

Impostare la password dell'App

Clicca su "App passwords" sotto la verifica in 2 passaggi.

Google ti chiederà di effettuare nuovamente l'accesso.

immagine

(Nota: ho già impostato la password dell'app, il tuo schermo potrebbe apparire un po' diverso all'inizio)

Cliccare su Select app e selezionare Other (nome personalizzato)

immagine

Puoi inserire il nome che preferisci - è per il tuo riferimento. Per esempio,

immagine

Cliccare su Genera

Apparirà una finestra popup. La password della tua app sarà mostrata solo questa volta, quindi assicurati di copiarla.

immagine

Notate che la password è solo mostrata come quattro segmenti di quattro caratteri ciascuno per essere più facile da leggere, non ci saranno spazi nella password attuale.

In questo caso la password è

lwsznhkychasbbrh

Cliccate su Done.

Passare a msmtp

ssmtp non è più mantenuto, e potrebbe anche avere problemi di connessione a Gmail:

/var/log/syslog:15 ott 09:52:22 Athena sSMTP[19076]: Connessione SSL usando ECDHE_ECDSA_CHACHA20_POLY1305
/var/log/syslog:15 ott 09:52:22 Athena sSMTP[19076]: Autorizzazione fallita (535 5.7.8 
https://support.google.com/mail/?p=BadCredentials ************.79 - gsmtp)

ssmtp: autorizzazione fallita (535 5.7.8  https://support.google.com/mail/?p=BadCredentials *************.4 - gsmtp)

Apparentemente la parte di autenticazione ECDHE potrebbe essere un problema per alcuni utenti su sistemi più recenti.

Il workaround è passare a msmtp.

Rimuovere ssmtp (tutti i comandi vengono eseguiti come root)

apt-get purge ssmtp

Installare msmtp

apt-get install msmtp msmtp-mta

Impostare msmtp

nano /etc/msmtprc

Inserite i seguenti dati:

default
autorizzazione su
tls su
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile /var/log/msmtp.log

account gmail
host smtp.gmail.com
porta 587

da [email protected]
utente [email protected]
password lwsznhkychasbbrh

account predefinito: gmail

Cambia i tuoi dati di accesso (da, utente e password - ho preso lwsznhkychasbbrh dall'esempio precedente).

Si noti che non è necessario riavviare un servizio o qualcosa del genere - i dati di accesso saranno utilizzati per la prossima e-mail che il server cercherà di inviare.

Usare il password dell'app generato sopra - la password del tuo account non funzionerà:

msmtp: autenticazione fallita (metodo PLAIN)
msmtp: messaggio del server: 534-5.7.9 Password specifica dell'applicazione richiesta. Per saperne di più
msmtp: messaggio del server: 534 5.7.9 
https://support.google.com/mail/?p=InvalidSecondFactor *************.29 - gsmtp
msmtp: impossibile inviare posta (account predefinito da /etc/msmtprc)

Inoltre, si prega di notare che la password dell'app deve essere inserita senza spazi tra i caratteri (come discusso sopra)

Proteggete questo file (contiene dati di accesso!):

chmod 600 /etc/msmtprc

immagine

Abilitare le app meno sicure

https://admin.google.com/u/2/ac/security/lsa

Sfortunatamente, voi anche bisogno di abilitare App meno sicure per i tuoi account in Google Admin, altrimenti continueresti a ricevere lo stesso messaggio di errore:

msmtp: autenticazione fallita (metodo PLAIN)
msmtp: messaggio del server: 535-5.7.8 Nome utente e password non accettati. Per saperne di più
msmtp: messaggio del server: 535 5.7.8  https://support.google.com/mail/?p=BadCredentials **********.34 - gsmtp
msmtp: impossibile inviare posta (account predefinito da /etc/msmtprc)

immagine

Cambia questo in "Consenti agli utenti di gestire il loro accesso alle app meno sicure" e clicca su Salva.

Invia un messaggio di prova

Se tutto funziona correttamente, potete ora inviare un messaggio di prova:

echo 'test' | msmtp [email protected]

Se questo comando ritorna senza un errore, allora tutto funziona.

Inoltre, se si aggiorna la vista delle password delle app, si vedrà che la password dell'app è stata usata ("last used"):

immagine

(questo potrebbe non essere sempre accurato secondo i miei test, però).

Se fosse non si otterrebbe un output simile al seguente:

msmtp: autenticazione fallita (metodo PLAIN)
msmtp: messaggio del server: 535-5.7.8 Nome utente e password non accettati. Per saperne di più
msmtp: messaggio del server: 535 5.7.8 
https://support.google.com/mail/?p=BadCredentials ***********.9 - gsmtp
msmtp: impossibile inviare posta (account predefinito da /etc/msmtprc)

Nota: Questo errore apparirà anche se cancellate la password dell'app usando l'icona del cestino che potete vedere sopra. Questa, tra l'altro, è una caratteristica utile delle password delle app: se sospetti una violazione, puoi semplicemente cancellare la password dell'app e impostare il tuo dispositivo con un'altra password dell'app.

Se continui a ricevere questo errore, controlla se hai abilitato le app meno sicure, come ti ho detto di fare (sopra).

Nota II: riceverai un'informazione sulle password delle app appena create nel tuo account di posta elettronica:

immagine

Nota III: avrai anche i messaggi inviati nella tua cartella dei messaggi inviati:

immagine

Rif

Bonus

Google menziona il loro limiti di tasso su questa pagina:

  • 10.000 destinatari al giorno per il servizio di relay SMTP (richiede un indirizzo IP statico o un accesso utente G Suite valido)
  • 2.000 messaggi al giorno per l'SMTP di Gmail