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);
}
以下はすべてを/ dev/nullに送信します:
LOCAL_RULE_0
R$* < @ $* > $* $#local $: bit-bucket
これは、/ etc/aliasesで次のことを前提としています。
bit-bucket: /dev/null
linuxで利用可能なsmtp-sinkを試す
$ smtp-sink -u postfix -c nynode.com:25 1000