Senden Sie alle ausgehenden E-Mails an / dev / null

12

Wie würden Sie bei sendmail alle ausgehenden E-Mails an / dev / null senden oder nur verhindern, dass E-Mails in die Warteschlange gestellt oder überhaupt gesendet werden?

Auf einer Entwicklungs-Nagios-Box möchte ich das Senden von E-Mails verhindern, damit Benachrichtigungen nicht ausgehen. Wenn ich ausgehende E-Mails stoppe, kann ich die Nagios-Konfiguration wie sie ist testen und falsche Benachrichtigungen verhindern.

cwebber
quelle
Das Solaris-Tag wurde als Frage entfernt, und die Lösung ist überhaupt nicht betriebssystemspezifisch.
Steve Schnepp

Antworten:

8

Ich habe dies auf meiner Entwicklungs-Box getan, indem ich sendmail komplett deaktiviert und dann ein einfaches Perl-Skript auf den SMTP-Port lauschen ließ und die E-Mails in ein Verzeichnis ablegte. Ich bin mir sicher, dass es mit der sendmail-Konfiguration möglich ist, aber das Perl-Skript war viel einfacher. Hier ist es auf das Wesentliche reduziert:

#!/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); 
} 
JOTN
quelle
Dies ist eine noch bessere Lösung, als ich gedacht habe. Vielen Dank.
Cwebber
+1 Was für eine elegante Lösung, ich wollte die gleiche Frage stellen.
Kev
6

Folgendes sendet alles an / dev / null:

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

Dies setzt voraus, dass in Ihrer / etc / Aliase:

bit-bucket: /dev/null
adamo
quelle
Achten Sie darauf, dies nicht einfach einzugeben - zwischen den beiden Seiten der Regel befindet sich ein Tabulator.
Erica Kane
Welches E-Mail-System verwenden Sie und wo fügen Sie diese Regel hinzu?
Teknopaul
Standard sendmail von sendmail.org. Die Regel wird zu sendmail.mc hinzugefügt und dann wird sendmail.cf gemäß den Besonderheiten Ihres Betriebssystems / Ihrer Distribution erstellt.
Adamo
0

versuchen Sie smtp-sink, verfügbar unter Linux

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

Kernel-Panik
quelle