Alerta por E-mail

Configure um sistema de alertas que vai enviar e-mails automáticos sob quaisquer condições: Alerta de login, monitor de temperatura, etc!


| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.


LEIA ANTES DE TUDO:

Se você pretende utilizar este tutorial pra enviar muitos e-mails de automação de processos, não o faça!

Fui banido de uma conta do Google por enviar 3 emails diários de servidores meus pra 1 e-mail destinatário tambem meu, porque isso infringe as políticas do Google… E de vários outros, como o gmx.com e etc.

Portanto cuidado, o ban ocorre e você nem ficará sabendo do motivo! NUNCA use seu e-mail pessoal, crie uma conta totalmente nova pra fazer esse tipo de configuração.

Recado dado, vamos ao post!

1. Introdução

Um sistema automático de alerta de e-mails não é algo tão usual para os usuários domésticos. É mais comum ser instalado e configurado num Servidor Linux que precisa ser monitorado com maior cuidado.

De fato algumas utilidades poderiam ser:

  • Alerta quando o computador é compartilhado e ele está sendo usado por outra pessoa naquele momento
  • Monitorar o tempo de uso do computador.
  • Monitorar a saúde do computador.

Não vou entrar em detalhes dos scripts que podem ser usados e aplicados, o objetivo hoje é configurar um sistema funciona de e-mails!

1.1 Modus Operandi

Criar um emissor de e-mails não é uma tarefa simples, requer criar uma configuração SSL, com um domínio, abrir portas no seu Modem…… enfim, não funciona bem na prática e sua empresa de telefonia/internet vai bloquear seu IP para disparo de e-mails!

Para resolver isso usaremos a forma mais simples: Um cliente de e-mails.

Semelhante ao que você faz com o GMail Web, Thunderbird, Evolution, você fará login na conta dentro desse cliente e usar ele para enviar um e-mail. Por sua vez esse e-mail costuma ser legítimo e não cai nas caixas de Spam..

No caso, usaremos o cliente de e-mails “mutt” via terminal, fazer login num serviço de e-mails por ele. E aí, usar um comando para disparar e-mails pelo Mutt de forma automática. Na verdade o Mutt é uma ponte, quem de fato fará o disparo da mensagem é uma conta do GMail que estará sendo gerenciada pelo Mutt.

Por que GMail?
É flexível o suficiente pra funcionar com o objetivo citado, simples de configurar e gratuito.

Se quiser tentar com Outlook ou outro provedor de e-mails fique por sua conta e risco!
O tutorial abaixo foi testado somente com configurações do GMail.

2. Materiais

Você vai precisar de:

  • Um computador com Linux
    Tudo será Shell script, portanto não temos uma preferência por distros.
  • Uma conta do GMail.
    Você pode usar sua conta pessoal, mas atento, precisaremos da Autenticação em Dois Fatores habilitada.
    Se não desejar habilitar em sua conta pessoal, crie um novo e-mail somente para este propósito do tutorial!
  • Instalar o pacote Mutt
    Ele é o cliente de e-mails via terminal que se conectará ao GMail.
  • Um celular
    Você vai precisar, se já não tiver o feito, ativar a autenticação de 2 Fatores pra acessar a conta.
    Assim os alertas não cairão no Spam do destinatário, seja lá quem for!

Com tudo reunido, vamos ás configurações!

3. Configurando

Primeiro, instale o MUTT no sistema.
Para instalá-lo em Debian/Ubuntu/LinuxMint use:

$ sudo apt install mutt

Para instalá-lo no Fedora/CentOS/RedHatEL:

$ sudo yum install mutt

O MUTT requer configurações adicionais mas serão realizados depois.

Crie uma conta no GMail ou tenha o seu Login em mãos!

  • Entre na sua conta.
  • No painel de navegação, selecione na lateral esquerda a aba Segurança.
  • Vá até a sessão “Iniciar Sessão do Google” rolando a tela.

  • Selecione Validação em dois passos (ou Verificação de duas etapas).
  • Siga as instruções na tela.

Com a “validação em dois passos ativa”, você pode voltar ao menu segurança e, na sessão “Iniciar Sessão do Google” observe que o menu ficou um pouco diferente:

Clique agora no menu “Senhas do App”. Vamos gerar uma senha especial para aplicativos!

Em “selecionar app”, escolha a opção “e-mail” e em “selecionar dispositivo” vá na última opção “Outro (nome personalizado)”.
Eu chamei o meu de “Servidor Linux”, você pode usar o nome que quiser.

Clique em GERAR. O Google vai te dar um código único, anote-o!
Ele é uma senha alternativa para login na conta sob o qual o Mutt fará o login para disparar e-mails.

3.1 MUTT

Voltando ao MUTT, vamos terminar de configurá-lo.

Primeiro faça este comando para criar as pastas e arquivos necessários:

$ mkdir -p ~/.mutt/cache/headers && mkdir ~/.mutt/cache/bodies && touch ~/.mutt/certificates && touch ~/.mutt/muttrc

Agora, edite o arquivo ~/.mutt/muttrc com seu editor de textos favorito, pode ser o Pluma, Gedit, NANO, VI, VIM, etc.
O arquivo está vazio. Você vai inserir este código dentro dele:

# O código começa aqui!
set from = ‘seu-email@gmail.com’
set realname = ‘Ryz3n
set imap_user = ‘seu-email@gmail.com’
set imap_pass = ‘CÓDIGO
set smtp_url = ‘smtps://seu-email@smtp.gmail.com:465
set smtp_pass = ‘CÓDIGO
set folder = ‘imaps://imap.gmail.com/’
set spoolfile = ‘+INBOX’
set postponed = ‘+[Gmail]/Drafts’
#set record = ‘+[Gmail]/Sent Mail’
set trash = ‘+[Gmail]/Trash’
# O código termina aqui!

Atento e trocando o que está em negrito acima!

  • Ryz3n: Nome do computador para ser identificado como remetente. Eu usei o meu de exemplo.
  • CÓDIGO: O código único gerado pelo Google na etapa “Senhas do App”
  • seu-email: troque conforme o e-mail criado ou o e-mail que você vai utilizar!
  • #: Remova este # se você deseja que uma cópia do e-mail fique no seu-email@gmail.com
    Do jeito que está, somente o destinatário terá uma cópia do e-mail. Além disso por padrão o MUTT deixa uma cópia do e-mail no arquivo “sent” em /home/usuário/.
  • A porta 465 funcionou pra mim, se houver algum erro ou a configuração do seu GMail estiver diferente, troque a porta aqui.

Salve e feche.
Se fez tudo corretamente, já está funcional!

4. Testando

Para enviar um e-mail de testes, no terminal a sintaxe do comando é:

$ echo “Corpo do Texto do E-mail” | mutt -s “Cabeçalho da Mensagem” destinatário@e-mail.com

O Destinatário pode ser qualquer outro serviço de e-mail, será sua conta do GMail enviando um e-mail para este destinatário.

Não vou me aprofundar em código shell, mas de forma simples você pode criar um script shell que insira uma informação no e-mail. Por exemplo, crie um script em um arquivo de texto chamado email.sh (aplique permissão de execução):

#!/bin/bash
var1=”Hello World!

var2=$(uname -a)
echo “$var1 $var2” | mutt -s “Cabeçalho da Mensagem” destinatário@e-mail.com
# Fim do Código

OBS: Sim, o var1 tem uma quebra de linha e a aspas dupla vai para a linha de baixo, assim você cria um “Enter” no corpo do texto e ele ficará com um espaço como resultado! Quanto mais “quebras de linha” der dentro das aspas, mais elas serão replicadas no e-mail depois.

Qualquer comando inserido dentro de $(   ) vai ser executado antes de ser transformado na variável var2.
Esse comando pode ser trocar por:

  • df -Th
    Exibe o consumo dos armazenamentos em HDDs ou SSDs.
  • sensors
    Se você tem o pacote lm-sensors instalado, ele exibirá um resumo das temperaturas.
  • uptime
    Você saberá a quanto tempo esse computador está ligado.
  • w
    O comando “w” exibe os usuários logados naquele momento.
  • last
    Já o comando “last” exibe a lista dos últimos logins bem sucedidos ao computador.
  • free -h
    Exibe a quantidade de memória RAM naquele momento.
  • Entre outros…

Execute esse script no terminal como:

$ ./email.sh

Esse código vai criar um e-mail cujo corpo da mensagem começa com um “Hello World!” e depois vai trazer uma longa linha de código gerada pelo comando “uname -a” que resume informações do sistema operacional. O resultado no Thunderbird:

5. Automatizando

Para automatizar esse script email.sh, você pode usar o Cron.
Já fizemos uma publicação aqui no site mostrando como configurar o Cron para rodar tarefas automáticas!

Se quiser que o script execute 1x, apenas durante o login, use o seguinte:
Edite o arquivo ~/.bashrc e no final dele adicione numa nova linha:

/caminho/completo/até/email.sh

Isso fará o código ser executado sempre que você fizer login, ou seja, esse usuário logado agora!
Se deseja que todos no sistema sejam afetados, incluindo o root, edite o arquivo /etc/bash.bashrc como Root e adicione a mesma linha ao final. Agora todos os usuários registrados farão o sistema enviar um e-mail sempre que fizerem login.

Lembrando que você pode esconder o arquivo email.sh com um . no começo: .email.sh
O caminho também muda: /caminho/completo/até/.email.sh
Assim ele não ficará visível nas pastas dos usuários a menos que o usuário exiba os arquivos ocultos!

5. Conclusão

É relativamente simples enviar um e-mail pelo terminal quando se associa diversas ferramentas como o GMail + Mutt + Cron.

Você automatiza um processo relativamente complexo de gerar relatórios do sistema e permite um melhor gerenciamento dos eventos do sistema, sejam quaisquer que você programar dentro desse código!

O limite é seu conhecimento em shell script, mas o que vale aqui, vale pra basicamente qualquer sistema Linux, com interface ou não, Raspberry Pi, etc.

#UrbanCompassPony

Arte de chamada: Penso

1 comentário em “Alerta por E-mail”

Deixe um comentário