【教程】树莓派自动发送邮件
树莓派接一上电就一直运行着,如果运行出现什么问题我们可能无从得知,所以希望把这种突发信息发送至手机。我们可以配置一个邮件客户端并且编写一个脚本自动发送。本文将实现开机时自动发送一封邮件到指定邮箱,这样如果断电或者机器重启,即便出门在外也能接收到通知。
实验环境
硬件:树莓派3b一台前期工作
操作系统:Raspbian with desktop
安装软件:mutt、msmtp
树莓派程序开机自启动方法总结安装步骤
1、安装mutt、msmtp
pi@raspberry:~ $ sudo apt-get install muttmsmtp是Linux下的一款邮件客户端,mutt通过调用msmtp来收发邮件。关于这两个软件详细说明请自行百度。
pi@raspberry:~ $ sudo apt-get install msmtp
2、配置msmtp
在当前用户目录下新建.msmtprc
pi@raspberry:~ $ nano ~/.msmtprc内容如下:
account default需要特别说明的是host字段,这个需要填写你使用邮箱的SMTP服务器地址,比如QQ邮箱应该填写:smtp.qq.com
host smtp.yeah.net
from 填写你的邮箱
auth plain
user 填写你的邮箱
password 密码
logfile /var/log/msmtp.log
替换填入自己的邮箱密码,ctrl+o保存,ctrl+x退出。
3、配置mutt
在当前用户目录下目录下新建.muttrc
pi@raspberrypi:~ $ nano ~/.muttrc.muttrc内容如下:
【【教程】树莓派自动发送邮件】set sendmail="/usr/bin/msmtp"realname字段会显示在发件人一栏,可以任意替换。保存并退出。
set use_from=yes
set realname="RaspberryPi"
set editor="nano"
至此,邮件客户端配置完成。
4、发送邮件测试
在终端下输入:
pi@raspberry:~ $ echo "hello pi" |mutt -s "hello" ?接收的邮箱这里会提示出错,意思是除了当前用户外不允许其他用户有读写权限。
文章图片
所以需要强制将读写权限设置为当前用户
pi@raspberry:~ $ chmod 600 .msmtprc再一次发送邮件就能成功了,成功发送没有任何提示,?如果有以下警告提示:
文章图片
这个问题的原因是msmtp没有权限操作log目录,我们需要手动去创建日志文件并设置好权限让msmtp可读写。
pi@raspberry:~ $sudo touch /var/log/msmtp.log
pi@raspberry:~ $sudo chmod 666 /var/log/msmtp.log
设置启动自动发送邮件 1、编写邮件发送脚本
pi@raspberry:~ $ nano sendmail.shsendmail.sh内容如下:
#!/bin/shsleep 1m,表示等待一分钟,是因为启动执行这段脚本时网络未必已经连接。
sleep 1m
echo "hello pi" |mutt -s "hello" 接收的邮箱
给脚本增加执行权限
pi@raspberry:~ $ chmod +x sendmail.sh2、将脚本设置为开机自启动
编辑/etc/rc.local文件
pi@raspberry:~ $ ?sudo nano /etc/rc.local在exit 0之前加入一行代码:
su pi -c "exec ~/sendmail.sh" &代码末尾的“&”表示不等待脚本执行完毕就返回,事实情况会创建新的进程去执行这条命令。
重启,测试,1分钟后查看邮箱就会收到邮件了。
另外 如果发送邮件是成功的,但是邮箱始终收不到邮箱,请检查下邮箱设置或者查看下垃圾箱,看看是否邮件是否被过滤到垃圾箱里面去了。
关注微信公众号及时获取更新文章,欢迎大家跟我交流技术与想法:
文章图片
推荐阅读
- 【Day|【Day 14】专业知识真的很重要啊
- 字符串的相关操作
- android|android studio打包h5,Android Studio打包生成APK教程
- 杂项|mobaxterm居然无法使用rz sz命令
- 一线车讯|售价30.98-37.98万元,全新福特探险者正式上市 | 一线车讯
- Algorithm|【algorithm】算法学习----堆
- 前端|vue 自适应布局
- elementui|【无标题】vue3后台管理
- 【爱情】圈套(12)
- 状态栏显示隐藏