树莓派使用的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
二、配置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登陆正常。