本文主要介绍树莓派通过配置msmtp和mutt实现邮件发送
1、安装msmtp和mutt
mutt:Linux下的邮件程序,Mutt 更像一个文件管理器,只不过它管理的是email。
msmtp: Linux下一个非常简单易用的smtp客户端。利用这个我们便可以发送邮件。
sudo apt install msmtp
sudo apt install mutt
2、配置msmtp和mutt
首先切换到用户根目录下
cd ~
然后在用户根没有了下分别新建.msmtprc 和.muttrc两个配置文件,文件内容如下
vim .muttrc
account default
host smtp.qq.com
from 邮箱地址
auth plain
user 邮箱地址
password 你的邮箱密码
logfile /var/log/msmtp.log
解释:
- host 邮箱的SMTP服务器地址,可以在邮件的网站上查到,默认使用25号端口,不用配置,建议使用QQ邮箱,163邮箱会出现垃圾邮件提示,导致发送邮件失败;
- from 发件人地址,在收件方会显示
- user 这里是用户名,等于是昵称,设置为张三之后,收到邮件会显示是张三
- password 这个就是自己邮箱的密码,QQ邮箱需要使用授权码
- logfile 这是msmtp的程序运行日志文件路径,需要自己创建,msmtp自己不会创建.在发送邮件之后程序会把发送日志写到这个路径的文件里,这里的路径是在/var下面,我前几次使用的时候都由于没有写权限而不能把日志写进去,所以如果你也使用Raspbian并且不是root用户的话你也应该会遇到权限问题写不进去,这里要修改下文件所有者,使用chown命令把这个文件修改为pi用户所有就OK了.当然你也可以选择在根目录下自己建立一个文件作为log文件,那样也不会有权限问题.
这里要说明的一点是由于在这个文件中密码是明文保存,msmtp考虑到安全问题,会要求强制设置文件访问权限为600,所以在写好配置文件之后,需要手动修改文件权限为600,使用命令: chmod 600 .msmtprc
vim .muttrc
set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="RaspberryPi"
set editor="vim"
- sendmail 这个是用来发送邮件的程序,mutt其实是一个上层应用,负责编辑邮件内容和添加附件,实际发送要依赖别的发送程序.这里我们使用的是msmtp,就在这里写msmtp的路径.查看msmtp的路径可以用命令
whereis msmtp
.最后要注意msmtp路径名要用双引号引起来.- use_from 是否需要显示from
- realname 这个是发送邮件之后,收件方显示的发件人的名字,注意也要用引号引起来
- editor 这个是使用mutt写邮件的时候默认vim 编辑器.
一共配置的内容就这么多,很简单.配置完之后就可以试着发一封邮件了,发送命令为:
echo 你好这是我的IP地址 | mutt -s 树莓派IP上报 test@qq.com
3、权限问题:
msmtp: cannot log to /var/log/msmtp.log: cannot open: Permission denied
解决办法:
手动创建日记文件并赋予全线
cd /var/log/
vim msmtp.log
chmod 666 msmtp.log