用Msmtp代替系统自身Sendmail的技巧

运维 系统运维
sendmail是一个漏洞奇多、配置超级麻烦的东西,所以很多系统管理员都把它禁用了。但是如此一来,如果crontab脚本执行出错,就只有天知地知了。

  Sendmail是一个漏洞奇多、配置超级麻烦的东西,所以很多系统管理员都把它禁用了。但是如此一来,如果Crontab脚本执行出错,就只有天知地知了。

  Sendmail有很多轻量级的替代,我之前一直在用Ssmtp,但是这东西已经停止维护了,我在google 搜它的源代码都搜不到。于是我就只好找其它的替代,于是就找到了Msmtp:http://msmtp.sourceforge.net/。

  1. 安装:

  下载解压之后,

  1. ./configure --prefix=/usr --libdir=/usr/lib64 --sysconfdir=/etc  
  2. make  
  3. make install 

  即可。

  2. 配置

  如果你像我这样,编译的时候加上了--sysconfdir=/etc,那么全局的配置文件就在/etc下面,名为Msmtprc。

  这是我的配置:

  1. $ cat /etc/Msmtprc   
  2. defaults   
  3. tls off   
  4. logfile /var/log/Msmtp.log  
  5.  
  6. account default   
  7. host mail.tudou.com   
  8. from xxxx@tudou.com   
  9. domain tudou.com   
  10. auth login   
  11. user sunchangming   
  12. password xxxx 

  3.让mail命令使用Msmtp而不是Sendmail

  这个很简单,在/etc/mail.rc的末尾加一行:

  1. set Sendmail="/usr/bin/Msmtp" 

  4.让Crontab用Msmtp

  打开/etc/sysconfig/crond,设置一下CRONDARGS的值:

  1. CRONDARGS="-m '/usr/bin/Msmtp -t'" 

  请注意这里一定要加-t。否则Msmtp是从Command line arg而不是Stdin读取收件人列表。我之前就是因为没有加这个,而导致Cron老是报告。

  1. Sep 24 18:06:01 a02 crond[8023]: (app_admin) MAIL (mailed 52 bytes of output but got status 0x0040 ) 

  独家秘方哦!Google搜不到这个答案的。

责任编辑:黄丹 来源: udpwork.com
相关推荐

2011-02-21 16:33:53

2011-01-21 13:41:09

Sendmail

2010-05-25 15:43:07

Sendmail配置

2011-02-21 16:41:19

Sendmail

2011-01-21 14:52:37

Sendmail

2011-01-18 15:00:57

2020-09-28 11:09:54

SQLDSL

2019-08-16 10:47:19

战场物联网IOT

2021-06-29 06:39:21

Linuxdust命令du命令

2011-01-21 13:56:44

SendmailSolaris

2011-01-21 09:49:18

sendmail目录

2011-01-21 09:17:39

sendmail目录

2011-01-21 10:39:48

sendmail

2011-01-19 10:11:22

sendmail安装方法

2018-04-03 13:31:53

LinuxUbuntu 16.0msmtp

2021-06-24 16:07:36

Linuxfind命令fd命令

2019-09-29 10:45:46

C语言CPU编译器

2020-10-28 07:03:11

NodeSassDart Sass

2011-01-21 10:59:01

sendmail群发

2011-01-18 14:24:03

Linuxsendmail配置
点赞
收藏

51CTO技术栈公众号