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.


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

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

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.