Raspberry Pi: envio de e-mail pelo Gmail

Esse post tem a finalidade de apresentar de forma rápida e direta como configurar o Raspbian para envio de mensagens de e-mail utilizando os servidores do Gmail.

As instruções a seguir foram baseadas em um Raspberry Pi com o sistema operacional “blindado” conforme descrito no post “Raspberry Pi: tornando o Raspbian mais seguro“, ou seja, todos os comandos foram executados com a conta root. Caso o Raspberry Pi em questão esteja com o sistema operacional padrão, deve-se utilizar sudo antes dos comandos.

 Instalando os pacotes para envio de e-mail

Para que o Raspberry Pi consega enviar emails, é necessário instalar um MTA (message transfer agent). Os procedimentos deste post utilizam o Exim4.

Exim4

Instalar o Exim4:

Após instalar o exim4, é necessário configurá-lo. Para isso, execute o comando:

Será apresentada a interface de configuração. Será necessário preencher alguns parâmetros. Abaixo estão os valores que devem ser informados.

  • Na primeira tela, escolha a segunda opção: “mail sent by smarthost; received via SMTP or fetchmail”
  • Na próxima tela, mantenha o valor apresentado, que é o hostname do Raspberry Pi
  • Agora, é necessário informar o endereço IP que está autorizado a usar o servidor. Deixe apenas: 127.0.0.1
  • Other destinations for which mail is accepted: coloque o hostname do Raspberry Pi
  • Na tela “Machines to relay mail for”: deixe em branco
  • Em “IP address or host name of outgoing smarthost” digite: smtp.gmail.com::587
  • “Hide local mail name in outgoing mail” selecione: No
  • “Keep number of DNS-queries minimal” selecione: No
  • “Delivery method for local mail” escolha: “Maildir format in home directory”
  • Na tela “Split configuration into small files” selecione: No
  • Na tem “Root and postmaster mail recipient:” deixe o campo vazio

Após o wizard de configuração, o exim4 irá reiniciar.

O próximo passo é configurar os detalhes da conta de e-mail do Gmail que será utilizada para o envio das mensagens.

Adicione as seguintes linhas:

Lembre-se de alterar, em todas as três linhas, meu_email para o login do Gmail (que é o endereço de e-mail completo. Ex.: oreia@gmail.com) e senha_do_email para a senha da conta de e-mail.

Após adicionar as linhas execute os seguintes comandos para atualizar e reiniciar o exim4 – estes comandos devem ser executados sempre que houver alteração nas configurações de exim4:

Ajustes finais

Alguns processos, como por exemplo crontabs, enviam emails para o root ou outros usuários de sistema. Se você não quer perder nenhuma dessas mensagens, basta configurar alguns aliases (apelidos). Para faze-lo, edite o arquivo /etc/aliases

Este arquivo faz com que todas as mensagens de email sejam redirecionadas para o usuário root. As mensagens do root são enviadas para o usuário pi, que por sua vez irá envia-las para o endereço de email do Gmail. Desta forma, todas as mesnagens de sistema serão enviadas para o endereço do Gmail, independentemente do usuário de sistema que enviou o email originalmente.

Testando

Para testar o envio de emails, execute o seguinte comando:

Agora digite o texto da mensagem, pode ser qualquer coisa já que é apenas um email de teste. Ao terminar de digitar a mensagem, digite um ponto (.) no início de uma linha em branco e pressione enter. A mensagem deverá ser enviada para o usuário root, que está redirecionado para o usuário pi que por sua vez está redirecionado para um email do Gmail.

Também é possível enviar a mensagem diretamente para o endereço do Gmail, entretanto isto evitaria o teste de redirecionamento.

Abaixo mais duas maneiras diferentes para enviar emails do Raspberry Pi. Ambos irão enviar o conteúdo do arquivo mensagem.txt como sendo o conteúdo do email.

Corrigindo mensagem de erro

É comum que o exim4 apresente uma mensagem de alerta ao ser inicializado:

ALERT: exim paniclog /var/log/exim4/paniclog has non-zero size, mail system possibly broken failed!

Para solucionar este “problema” basta proceder da seguinte forma:

Editar o arquivo /etc/sysctl.conf

Inserir duas linhas no final do arquivo:

Remover o arquivo com o log de erro

Reiniciar o serviço e verificar se a mensagem de alerta desapareceu:

Deixe uma resposta