本文主要介绍树莓派通过配置msmtp和mutt实现邮件发送

1、安装msmtp和mutt

mutt:Linux下的邮件程序,Mutt 更像一个文件管理器,只不过它管理的是email。
msmtp: Linux下一个非常简单易用的smtp客户端。利用这个我们便可以发送邮件。

  1. sudo apt install msmtp
  2. sudo apt install mutt

2、配置msmtp和mutt

首先切换到用户根目录下

  1. cd ~

然后在用户根没有了下分别新建.msmtprc 和.muttrc两个配置文件,文件内容如下

  1. vim .muttrc
  2. account default
  3. host smtp.qq.com
  4. from 邮箱地址
  5. auth plain
  6. user 邮箱地址
  7. password 你的邮箱密码
  8. 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

  1. vim .muttrc
  2. set sendmail="/usr/bin/msmtp"
  3. set use_from=yes
  4. set realname="RaspberryPi"
  5. set editor="vim"
  • sendmail 这个是用来发送邮件的程序,mutt其实是一个上层应用,负责编辑邮件内容和添加附件,实际发送要依赖别的发送程序.这里我们使用的是msmtp,就在这里写msmtp的路径.查看msmtp的路径可以用命令whereis msmtp.最后要注意msmtp路径名要用双引号引起来.
  • use_from 是否需要显示from
  • realname 这个是发送邮件之后,收件方显示的发件人的名字,注意也要用引号引起来
  • editor 这个是使用mutt写邮件的时候默认vim 编辑器.

一共配置的内容就这么多,很简单.配置完之后就可以试着发一封邮件了,发送命令为:

  1. echo 你好这是我的IP地址 | mutt -s 树莓派IP上报 test@qq.com

3、权限问题:

msmtp: cannot log to /var/log/msmtp.log: cannot open: Permission denied

解决办法:
手动创建日记文件并赋予全线

  1. cd /var/log/
  2. vim msmtp.log
  3. chmod 666 msmtp.log