用msmtp代替系统自身的sendmail
sendmail是一个漏洞奇多、配置超级麻烦的东西,所以很多系统管理员都把它禁用了。但是如此一来,如果crontab脚本执行出错,就只有天知地知了。
sendmail有很多轻量级的替代,我之前一直在用ssmtp,但是这东西已经停止维护了,我在google 搜它的源代码都搜不到。于是我就只好找其它的替代,于是就找到了msmtp:http://msmtp.sourceforge.net/。
1. 安装:
下载解压之后,
./configure --prefix=/usr --libdir=/usr/lib64 --sysconfdir=/etc
make
make install
即可。
2. 配置
如果你像我这样,编译的时候加上了--sysconfdir=/etc,那么全局的配置文件就在/etc下面,名为msmtprc。
这是我的配置:
$ cat /etc/msmtprc
defaults
tls off
logfile /var/log/msmtp.log
account default
host mail.tudou.com
from xxxx@tudou.com
domain tudou.com
auth login
user sunchangming
password xxxx
3.让mail命令使用msmtp而不是sendmail
这个很简单,在/etc/mail.rc的末尾加一行
set sendmail="/usr/bin/msmtp"
4.让crontab用msmtp
打开/etc/sysconfig/crond,设置一下CRONDARGS的值
CRONDARGS="-m \'/usr/bin/msmtp -t\'"
请注意这里一定要加-t。否则msmtp是从command line arg而不是stdin读取收件人列表。我之前就是因为没有加这个,而导致cron老是报告
Sep 24 18:06:01 a02 crond[8023]: (app_admin) MAIL (mailed 52 bytes of output but got status 0x0040 )
独家秘方哦!google搜不到这个答案的。
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:snnn 来源: snnn的blog
- 标签: msmtp sendmail
- 发布时间:2012-12-24 13:31:35
- [55] Oracle MTS模式下 进程地址与会话信
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [54] 如何拿下简短的域名
- [53] 图书馆的世界纪录
- [52] android 开发入门
- [51] Go Reflect 性能
- [49] 读书笔记-壹百度:百度十年千倍的29条法则
- [48] 【社会化设计】自我(self)部分――欢迎区
- [38] 程序员技术练级攻略
- [33] 视觉调整-设计师 vs. 逻辑