Enviar email com o IP da RaspberryPi automaticamente

Uma das formas de utilizar a RPi sem a necessidade de um monitor é acessá-la remotamente através de ‘ssh’ ou até mesmo de um servidor VNC. Entretanto, quando o IP atribuído a RPi não é fixo, precisamos de alguma forma descobri-lo sem acessar a RPi diretamente. Um das saídas para este problema é apresentada a seguir e consiste em fazer a RPi enviar o seu IP por e-mail toda vez que o cabo Ethernet for conectado e um IP for atribuído.

Os passos apresentados abaixo foram testados em uma RPi modelo B rodando o sistema operacional Raspbian wheezy.

  1. Primeiramente precisamos baixar o pacote ssmtp, ele é um cliente smtp utilizado para enviar mensagens para um servidor smtp.
     sudo apt-get install -y ssmtp
  2. Abrir o arquivo ‘/etc/ssmtp/ssmtp.conf’, este é o arquivo de configuração do cliente smtp.
     sudo vim /etc/ssmtp/ssmtp.conf
  3. Editar o arquivo ‘/etc/ssmtp/ssmtp.conf’ com as informações abaixo:
     ############################################################################  
     root=postmaster  
     # Como utilizamos o gmail, colocamos o servidor smtp dele.  
     mailhub=smtp.gmail.com:587  
     # nome do host(parte posterior ao @ do email)  
     hostname=gmail.com      
     # usuario(parte anterior ao @ do email)  
     AuthUser=jua_labs  
     # senha       
     AuthPass=juapw  
     # criptografia  
     UseSTARTTLS=YES  
     ############################################################################  
    
  4. Criar arquivo ‘/etc/network/if-up.d/mailip’.
     sudo vim /etc/network/if-up.d/mailip  
    
  5. Inserir as informações abaixo no arquivo ‘/etc/network/if-up.d/mailip’.
     ############################################################################  
     #!/bin/sh  
     # email destino  
     mailreceiver=jua.labs@gmail.com   
     # salvamos a data  
     today=$(date)  
     # guardamos o IP na variavel my_ip  
     my_ip=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{print $1}'`  
     #o '\n\n' sinaliza que o que virá apos será o corpo do email   
     my_pi="Subject: RPi reiniciada!\n\n"  
     #mensagem a ser enviada  
     message="$my_pi reiniciada em: $today.\nIP atual = $my_ip"  
     #salvamos a mensagem em um txt  
     echo $message > message.txt  
     #enviamos o 'message.txt' por meio do programa 'ssmtp' ao jua.labs@gmail.com  
     ssmtp ${mailreceiver} < message.txt  
     ############################################################################  
    
  6. Reinicie a RPi e a reconecte a rede, toda vez que ela receber um endereço IP ela enviará para o email especificado na variável mailreceiver do código do tópico 5.

Referências:

3 comentários em “Enviar email com o IP da RaspberryPi automaticamente

  1. Muito bacana e necessário! Recentemente bolei uma solução parecida…
    A diferença, no caso, foi a necessidade de ser avisado também quando meu IP externo é alterado. No python eu fiz a comparação do IP atual com um antigo, salvo em um .txt, e sequencialmente envia um e-mail, caso o IP tenha sido alterado.
    Depois foi só adicionar uma cron com intervalo de segundos/minutos.
    Parabéns, e abraços!

    Curtir

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 )

Conectando a %s