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:

https://myaccount.google.com/

Clique na guia Segurança e desça até a Verificação em 2 etapas, ative-a.

imagem

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.

imagem

(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)

imagem

Você pode digitar qualquer nome que quiser - é para sua referência. Por exemplo,

imagem

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.

imagem

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.log

gmail de conta
hospedar smtp.gmail.com
porto 587

de [email protected]
usuário [email protected]
senha lwsznhkychasbbrh

padrã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

imagem

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)

imagem

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"):

imagem

(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:

imagem

Nota III: você também receberá as mensagens enviadas em sua pasta enviada:

imagem

Ref

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