С помощью 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
попробуйте smtp -ink, доступный в Linux
$ smtp -ink -u postfix -c nynode.com:25 1000