ubuntu 用命令mutt 发邮件

不知有没有朋友跟我一样,想定时一任务,做完了就发个邮件出来。

按照网上配置mail总是失败。

最后只能用mutt了。

一、安装

apt-get install mutt

apt-get install msmtp

二、配置

在 /etc/Muttrc 文件里最后加入

set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="zhangsan"    #发件人名字
set from=zhangsan@163.com #发件人地址
set envelope_from=yes


编辑~/.msmtprc,如果不存在就创建一个,要录属于当前用户和群组,该文件需要600权限,如果不是600权限会无法使用。

account default
host smtp.163.com    #邮件服务器地址
from zhangsan@163.com    
auth login        #认证方式
user zhangsan 
password 999 #密码
logfile ~/.msmtp.log


注:

按照上面2步可能会出现错误:


错误 1:msmtp: account default not found: no configuration file available

msmtp有bug,必须手动指定对应的配置文件

更改/etc/Muttrc中set sendmail="/usr/bin/msmtp"

set sendmail="/usr/bin/msmtp -C .msmtprc"

错误 2:msmtp: GNU SASL: Base 64 coding error in SASL library
遇到Base64 编码错误
更改~/.msmtprc中auth login
为 auth plain 

三、发送

记住如果当前不是root,就要用sudo,否则没权限发不出去。

假如现在要把/media/disk2/test/terminator.logr的内容发给[email protected]

输入如下命令:

sudo mutt -s "aaaa" [email protected] < /media/disk2/test/terminator.log

mutt -s "主题" [email protected] -a 附件.txt <邮件内容.txt

多联系人多附件:

MailList=`cat list.txt`

mutt  -s "主题" $MailList -a 附件1 -a 附件2  < hello.txt


另外:
命令行发邮件一般在自动编译的时候使用,也就是用at定时一个编译任务,完了就发个邮件出来。
但有个问题,就是mutt和.msmrc文件需要root权限,对于本身就是#来说是没有问题的,但如果是$就要sudo了。sudo时需要输入密码,但at任务中无法输入密码。
解决办法是通过sudo的配置文件授权给mutt。
1:dengyongjian@dengyongjian-desktop:~$ su
Password:         ==>输入密码
2:root@dengyongjian-desktop:~# visudo   ==>运行visudo 来改 /etc/sudoers
3:在sudoers文件中添加 %dengyongjian ALL=(root)NOPASSWD:/usr/bin/mutt
这样sudo mutt -s "aaaa" [email protected] < /media/disk2/test/terminator.log时就直接进入root权限,而且不用输入密码



你可能感兴趣的:(ubuntu,Mutt,命令发邮件)