Kirim semua email keluar ke / dev / null

12

Dengan sendmail, bagaimana Anda mengirim semua email keluar ke / dev / null atau hanya mencegah email agar tidak diantri atau dikirim sama sekali?

Pada kotak nagios pengembangan saya ingin mencegah pengiriman surat sehingga pemberitahuan tidak keluar. Menghentikan surat keluar akan memungkinkan saya untuk menguji konfigurasi nagios apa adanya dan mencegah pemberitahuan palsu.

cwebber
sumber
Tag solaris yang dihapus, sebagai pertanyaan, dan solusinya tidak spesifik OS sama sekali.
Steve Schnepp

Jawaban:

8

Saya melakukan ini pada kotak pengembangan saya dengan menonaktifkan sendmail sepenuhnya dan kemudian memiliki skrip perl sederhana mendengarkan pada port SMTP dan membuang email ke direktori. Saya yakin itu mungkin dilakukan dengan konfigurasi sendmail, tetapi skrip perl jauh lebih mudah. Ini dia dipreteli ke esensi:

#!/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
sumber
Ini adalah solusi yang lebih baik daripada yang saya pikirkan. Terima kasih.
cwebber
+1 Solusi apa yang elegan, saya akan mengajukan pertanyaan yang sama.
Kev
6

Berikut ini mengirimkan semuanya ke / dev / null:

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

Ini mengasumsikan bahwa di / etc / alias Anda:

bit-bucket: /dev/null
adamo
sumber
Hati-hati jangan hanya mengetik ini - ada TAB antara kedua sisi aturan.
Erica Kane
Sistem email apa yang Anda gunakan dan di mana Anda menambahkan aturan itu?
teknopaul
Sendmail standar dari sendmail.org. Aturan akan ditambahkan ke sendmail.mc dan kemudian sendmail.cf diproduksi sesuai dengan spesifikasi OS / distribusi Anda.
adamo
0

coba smtp-sink, tersedia di linux

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

panik kernel
sumber