web-dev-qa-db-ja.com

すべての送信メールを/ dev / nullに送信します

Sendmailを使用して、すべての送信メールを/ dev/nullにどのように送信するか、または電子メールがキューに入れられたり送信されたりするのを防ぐだけですか?

開発nagiosボックスでは、通知が送信されないようにメールの送信を禁止します。送信メールを停止すると、nagios設定をそのままテストして、偽の通知を防ぐことができます。

12
cwebber

私の開発ボックスでは、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); 
} 
8
JOTN

以下はすべてを/ dev/nullに送信します:

LOCAL_RULE_0
R$* < @ $* > $*       $#local $: bit-bucket

これは、/ etc/aliasesで次のことを前提としています。

bit-bucket: /dev/null
6
adamo

linuxで利用可能なsmtp-sinkを試す

$ smtp-sink -u postfix -c nynode.com:25 1000

0
kernel panic