Enviando e-mail na linha de comando do Linux pelo GMail.

Muitas vezes é interessante enviar um e-mail através no BASH no Linux, seja para enviar relatórios ou avisos para o administrador. Entretanto, instalar um servidor SMTP completo apenas para essa função não é o ideal. Por que não utilizar um serviço confiável já existente? Vamos a seguir explicar como utilizar o GMail para envio de mensagens no BASH. Sem muito esforço, é possível adaptar essa solução para outros serviços de e-mail. Essa solução foi testada no Ubuntu 12.04 LTS.

O aplicativo que vamos utilizar é o MSMTP. A instalação dos pacotes necessários pode ser feita com o comando abaixo:

:~$ sudo apt-get install msmtp openssl ca-certificates

Com os pacotes instalados, devemos criar um arquivo de configuração para o MSMTP. Coloque o conteúdo abaixo no arquivo ~/.msmtprc:

account default
host smtp.gmail.com
port 587
from SEUUSUARIO@gmail.com
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
auth on
user SEUUSUARIO@gmail.com
password SUASENHA
logfile ~/.msmtp

Como esse arquivo contém sua senha, o ideal é impedir que os outros usuários possam lê-lo. Execute o comando abaixo para restringir as permissões:

:~$ chmod u+rw,g-rw,o-r ~/.msmtprc

Agora vamos criar um arquivo de e-mail. O arquivo deve possuir os campos From:, To: e Subject: (remetente, destinatário e assunto). Lembre de casar as informações do e-mail com o que você colocou no arquivo ~/.msmtprc. Veja um exemplo, salvo no arquivo email.txt:

To: larrypage@gmail.com
From: SEUUSUARIO@gmail.com
Subject: Teste de envio de e-mail pelo BASH.

Olá Larry,

Isto é um teste.

[]'s

Agora basta executar o comando abaixo e pronto, um e-mail será enviado:

:~$ msmtp -t < email.txt
Anúncios

4 comentários em “Enviando e-mail na linha de comando do Linux pelo GMail.

    1. Olá Nelson,

      Você ativou as opções de TLS no seu arquivo .msmtprc? Por alguma razão, está tentando a autenticação sem TLS (method PLAIN). De fato, o GMAIL não aceita isso.

    1. Bem, threads em si não são o forte de bash. Mas você poderia colocar o comando do msmtp em um laço e executá-lo a cada iteração com o & no final. Mas acho que nesse caso, o que limita a execução do script não é o código em si, mas a rede.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.