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


12

sendmailを使用して、すべての送信メールを/ dev / nullに送信する方法、または単にメールがキューに入れられたり送信されないようにする方法

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


質問としてsolarisタグを削除しました。ソリューションはOS固有ではありません。
スティーブシュネップ

回答:


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); 
} 

これは私が考えていたよりもさらに良い解決策です。ありがとう。
-cwebber

+1なんてエレガントなソリューションか、私は同じ質問をしようとしていました。
ケブ

6

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

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

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

bit-bucket: /dev/null

これを単に入力しないように注意してください-ルールの両側の間にタブがあります。
エリカケイン

使用しているメールシステムは何ですか?そのルールはどこに追加しますか?
-teknopaul

sendmail.orgからの標準sendmail。ルールがsendmail.mcに追加され、OS /ディストリビューションの仕様に従ってsendmail.cfが生成されます。
アダモ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.