使用 sendmail,您将如何将所有外发邮件发送到 /dev/null 或只是阻止电子邮件排队或根本发送?
在开发 nagios 框上,我想阻止发送邮件,以便通知不会发出。停止出站邮件将允许我按原样测试 nagios 配置并防止虚假通知。
我通过完全禁用 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)
以下将所有内容发送到 /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)
归档时间: |
|
查看次数: |
7643 次 |
最近记录: |