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


樹莓派使用的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” xxx@gmail.com

二、設置樹莓派讀取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" 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

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM