Gmail Workspace / Gmail Suite enviar e-Mail do servidor usando msmtp
Estamos no processo de migração para o Gmail, para poder delegar a gestão de um servidor de e-mail.
Nós usamos o ssmtp em nosso servidor para enviar e-mails antes, usando nosso próprio servidor de e-mail (Zimbra).
Consegui agora pôr o Gmail Workspace a funcionar, e gostaria de partilhar algumas dicas sobre como o fazer.
Isto é feito num sistema Debian / Ubuntu.
Configurar autenticação de 2 fatores
Faça login na sua conta do Google:
Clique na guia Segurança e desça até a Verificação em 2 etapas, ative-a.
Você provavelmente precisará fornecer seu número de celular para o Google ou escolher outra opção aqui.
Configurar uma senha do aplicativo
Clique em "App passwords" abaixo da Verificação em 2 passos.
O Google vai exigir que você faça o login novamente.
(Nota: eu já tenho uma senha de aplicativo configurada, sua tela pode parecer um pouco diferente no início)
Clique em Select app, e seleccione Other (nome personalizado)
Você pode digitar qualquer nome que quiser - é para sua referência. Por exemplo,
Clique em Gerar
Uma janela popup aparecerá. A senha do seu aplicativo será mostrada apenas uma vez, portanto não se esqueça de copiá-la.
Note que a senha é mostrada apenas como quatro segmentos de quatro caracteres cada um para ser mais fácil de ler, não haverá espaços na senha real.
Neste caso, a senha é
lwsznhkychasbbrh
Clique em Done (Feito).
Mudar para msmtp
O ssmtp não é mais mantido, e possivelmente também terá problemas de conexão com o Gmail:
/var/log/syslog:Oct 15 09:52:22 Athena sSMTP[19076]: Ligação SSL usando ECDHE_ECDSA_CHACHA20_POLY1305
/var/log/syslog:Oct 15 09:52:22 Athena sSMTP[19076]: A autorização falhou (535 5.7.8 https://support.google.com/mail/?p=BadCredentials ************.79 - gsmtp)
ssmtp: A autorização falhou (535 5.7.8 https://support.google.com/mail/?p=BadCredentials *************.4 - gsmtp)
Aparentemente, a parte do ECDHE auth pode ser um problema para alguns utilizadores em sistemas mais recentes.
A solução é mudar para msmtp.
Remover ssmtp (todos os comandos são executados como root)
apt-get purge ssmtp
Instalar msmtp
apt-get install msmtp msmtp-mta
Configurar o msmtp
nano /etc/msmtprc
Coloque os seguintes dados:
inadimplementos
continuar
atualizações
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile /var/log/msmtp.loggmail de conta
hospedar smtp.gmail.com
porto 587de [email protected]
usuário [email protected]
senha lwsznhkychasbbrhpadrão de conta : gmail
Altere seus dados de login (de, usuário e senha - Eu tomei lwsznhkychasbbrh a partir do exemplo acima).
Note que você não precisa reiniciar um serviço ou algo parecido - os dados de acesso serão usados para o próximo e-mail que o servidor tentar enviar.
Use o senha do aplicativo gerada acima - a senha da sua conta não funcionará:
msmtp: a autenticação falhou (método PLAIN)
msmtp: mensagem do servidor: 534-5.7.9 Senha específica da aplicação requerida. Saiba mais em
msmtp: mensagem do servidor: 534 5.7.9 https://support.google.com/mail/?p=InvalidSecondFactor *************.29 - gsmtp
msmtp: não foi possível enviar correio (conta padrão do /etc/msmtprc)
Além disso, note que a senha do aplicativo deve ser digitada sem espaços entre os caracteres (como discutido acima)
Proteja este arquivo (ele contém dados de login!):
chmod 600 /etc/msmtprc
Habilitar aplicações menos seguras
https://admin.google.com/u/2/ac/security/lsa
Infelizmente, você vai também necessidade de habilitar Aplicações menos seguras acesso para suas contas no Google Admin, caso contrário você continuaria a receber a mesma mensagem de erro:
msmtp: a autenticação falhou (método PLAIN)
msmtp: mensagem do servidor: 535-5.7.8 Nome de usuário e senha não aceitos. Saiba mais em
msmtp: mensagem do servidor: 535 5.7.8 https://support.google.com/mail/?p=BadCredentials **********.34 - gsmtp
msmtp: não foi possível enviar correio (conta padrão do /etc/msmtprc)
Altere isso para "Permitir que os usuários gerenciem seu acesso a aplicativos menos seguros" e clique em Salvar.
Enviar uma mensagem de teste
Se tudo funcionar corretamente, você pode agora enviar uma mensagem de teste:
echo 'test' | msmtp [email protected]
Se este comando retornar sem erro, então tudo funciona.
Além disso, se você atualizar a sua visão de senhas do aplicativo, você verá que a senha do aplicativo foi usada ("última usada"):
(isto pode não ser sempre exacto como nos meus testes, no entanto).
Se fosse não trabalho, você obteria uma saída semelhante à seguinte:
msmtp: a autenticação falhou (método PLAIN)
msmtp: mensagem do servidor: 535-5.7.8 Nome de usuário e senha não aceitos. Saiba mais em
msmtp: mensagem do servidor: 535 5.7.8 https://support.google.com/mail/?p=BadCredentials ***********.9 - gsmtp
msmtp: não foi possível enviar correio (conta padrão do /etc/msmtprc)
Nota: Este erro também aparecerá se você apagar sua senha do aplicativo usando o ícone da lixeira que você pode ver acima. A propósito, este é um recurso útil das senhas do aplicativo: se você suspeitar de uma violação, você pode simplesmente excluir a senha do aplicativo e configurar seu dispositivo com outra senha do aplicativo.
Se você continuar recebendo esse erro, verifique se ativou aplicativos menos seguros, como eu o instruí (acima).
Nota II: você receberá uma informação sobre senhas de aplicativos recém-criadas na sua conta de e-mail:
Nota III: você também receberá as mensagens enviadas em sua pasta enviada:
Ref
- 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 (isto também menciona um serviço de relé SMTP, que pode ser usado como uma alternativa)
Bónus
O Google menciona o seu limites de taxas nesta página:
- 10.000 destinatários por dia para o serviço de relé SMTP (requer um endereço IP estático ou login de usuário G Suite válido)
- 2.000 mensagens por dia para o Gmail SMTP