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:
Clicca sulla scheda Sicurezza e scorri fino a Verifica in 2 passaggi, abilitala.
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.
(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)
Puoi inserire il nome che preferisci - è per il tuo riferimento. Per esempio,
Cliccare su Genera
Apparirà una finestra popup. La password della tua app sarà mostrata solo questa volta, quindi assicurati di copiarla.
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.logaccount gmail
host smtp.gmail.com
porta 587da [email protected]
utente [email protected]
password lwsznhkychasbbrhaccount 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
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)
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"):
(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:
Nota III: avrai anche i messaggi inviati nella tua cartella dei messaggi inviati:
Rif
- https://doc.ubuntu-fr.org/msmtp
- https://stackoverflow.com/questions/63560494/gmail-is-blocking-to-send-email-via-smtp
- https://www.getmailbird.com/setup/access-gmail-com-via-imap-smtp
- https://support.google.com/a/answer/176600?hl=en (questo menziona anche un servizio di relay SMTP, che può essere usato come alternativa)
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