樹莓派開機發送IP地址到郵箱

樹莓派使用的wifi聯網,在宿舍使用的是公共網絡,不能設置靜態ip,每次樹莓派上電開機後ip地址可能會改變,因此讓樹莓派開機聯網後自動發送ip地址到QQ郵箱vim

1、安裝mutt和msmtpbash

mutt: 是一個Linux下的郵件程序,Mutt 更像一個文件管理器,只不過它管理的是email。服務器

msmtp: 是Linux下一個很是簡單易用的smtp客戶端。網絡

sudo apt-get install mutt
sudo apt-get install msmtp

2、配置mutt和msmtpssh

一、配置msmtp,在用戶的根目錄下新建文件.msmtprc,內容以下:curl

account default
host smtp.aliyun.com
from 你的郵箱地址
auth plain
user 你的郵箱地址
password 你的郵箱密碼
logfile /var/log/msmtp.log
  • host 你的郵箱的SMTP服務器地址,能夠在郵件的網站上查到,我用的阿里雲的郵箱,因此是aliyun.com後綴
  • from 這裏是發件人地址,在收件方會顯示,設置成你給樹莓派申請的郵箱地址
  • user 這裏是用戶名,網上有用戶說這裏設置郵箱的用戶名即@符號前面的字符串就能夠,我沒有嘗試,仍是設置的個人郵箱地址,建議先使用郵箱地址,配置成功以後能夠本身進行修改
  • password 這個就是本身郵箱的密碼,沒什麼好說的,可是這裏是明文密碼,要注意保密:)
  • logfile 這是msmtp的程序運行日誌文件路徑,須要本身建立,msmtp本身不會建立.在發送郵件以後程序會把發送日誌寫到這個路徑的文件裏。

二、配置mutt的文件,一樣在用戶根目錄下新建文件.muttrc,內容以下:測試

set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="RaspberryPi"
set editor="vim"

 使用如下命令測試發送郵箱是否成功:網站

echo 「hello world」 | mutt -s 「title」 xxx@gmail.com

2、設置樹莓派讀取Ip地址並經過郵件發送阿里雲

如下腳本文件參考網上的文章 send-ip-mail.shurl

#!/bin/bash
# check network availability 
while true
do
TIMEOUT=5
SITE_TO_CHECK="www.126.com"
RET_CODE=`curl -I -s --connect-timeout $TIMEOUT $SITE_TO_CHECK -w %{http_code} | tail -n1`
if [ "x$RET_CODE" = "x200" ]; then
echo "Network OK, will send mail..."
break
else
echo "Network not ready, wait..."
sleep 1s
fi
done
# get the IP address of eth0, e.g. "192.168.16.5" 
ETH0_IP_ADDR=`ifconfig eth0 | sed -n "2,2p" | awk '{print substr($2,1)}'`
# send the Email 
echo "Current time: `date '+%F %T'`. Enjoy it" | mutt -s "IP Address of Raspberry Pi: $ETH0_IP_ADDR" xxx@gmail.com

  

使用chmod +x send-ip-mail.sh添加執行權限後,運行查看是否能夠發送ip地址。

在rc.local文件中添加開機執行該腳本的命令後,上電重啓發現不能接收到郵件,後來上網查看發現是權限問題,通過一番折騰,後來選擇把.muttrc,.msmtprc和send-ip-mail.sh文件都複製到/boot目錄下,在rc.local中添加以下內容,最後從新上電能夠接收到樹莓派發來的郵件,經過郵件裏的ip地址ssh登陸正常。

 

 

參考文章:https://www.jianshu.com/p/893352c61f93

相關文章
相關標籤/搜索