樹莓派使用的wifi聯網,在宿舍使用的是公共網路,不能設置靜態ip,每次樹莓派上電開機後ip地址可能會改變,所以讓樹莓派開機聯網後自動發送ip地址到QQ郵箱 一、安裝mutt和msmtp mutt: 是一個Linux下的郵件程式,Mutt 更像一個文件管理器,只不過它管理的是email。 msmtp ...
樹莓派使用的wifi聯網,在宿舍使用的是公共網路,不能設置靜態ip,每次樹莓派上電開機後ip地址可能會改變,所以讓樹莓派開機聯網後自動發送ip地址到QQ郵箱
一、安裝mutt和msmtp
mutt: 是一個Linux下的郵件程式,Mutt 更像一個文件管理器,只不過它管理的是email。
msmtp: 是Linux下一個非常簡單易用的smtp客戶端。
sudo apt-get install mutt sudo apt-get install msmtp
二、配置mutt和msmtp
1、配置msmtp,在用戶的根目錄下新建文件.msmtprc,內容如下:
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自己不會創建.在發送郵件之後程式會把發送日誌寫到這個路徑的文件里。
2、配置mutt的文件,同樣在用戶根目錄下新建文件.muttrc,內容如下:
set sendmail="/usr/bin/msmtp" set use_from=yes set realname="RaspberryPi" set editor="vim"
使用以下命令測試發送郵箱是否成功:
echo “hello world” | mutt -s “title” [email protected]
二、設置樹莓派讀取Ip地址並通過郵件發送
以下腳本文件參考網上的文章 send-ip-mail.sh
#!/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" [email protected]
使用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