将所有外发邮件发送到 /dev/null

cwe*_*ber 12 sendmail nagios

使用 sendmail,您将如何将所有外发邮件发送到 /dev/null 或只是阻止电子邮件排队或根本发送?

在开发 nagios 框上,我想阻止发送邮件,以便通知不会发出。停止出站邮件将允许我按原样测试 nagios 配置并防止虚假通知。

JOT*_*OTN 8

我通过完全禁用 sendmail 然后让一个简单的 perl 脚本侦听 SMTP 端口并将电子邮件转储到目录中来在我的开发框中完成此操作。我确信可以使用 sendmail 配置,但是 perl 脚本要容易得多。这是它精简到必需品:

#!/usr/bin/perl -w 
use Net::SMTP::Server; 
use Net::SMTP::Server::Client; 

$server = new Net::SMTP::Server || die("$!\n"); 

while($conn = $server->accept()) { 
  my $client = new Net::SMTP::Server::Client($conn) || 
    die("Unable to handle client connection: $!\n"); 
  $client->process || next; 

  # Here's where you can write it out or just dump it. Set $filename to 
  # where you want to write it
  open(MAIL,"> $filename") || die "$filename: $1"; 
  print(MAIL "$client->{MSG}\n"); 
  close(MAIL); 
} 
Run Code Online (Sandbox Code Playgroud)


ada*_*amo 6

以下将所有内容发送到 /dev/null:

LOCAL_RULE_0
R$* < @ $* > $*       $#local $: bit-bucket
Run Code Online (Sandbox Code Playgroud)

这假设在您的 /etc/aliases 中:

bit-bucket: /dev/null
Run Code Online (Sandbox Code Playgroud)