ส่งเมลขาออกทั้งหมดไปที่ / dev / null


12

ด้วย sendmail คุณจะส่งจดหมายขาออกทั้งหมดไปยัง / dev / null ได้อย่างไรหรือป้องกันไม่ให้อีเมลถูกจัดคิวหรือส่งเลย

ในกล่องพัฒนา nagios ฉันต้องการป้องกันการส่งเมลเพื่อไม่ให้การแจ้งเตือนออกไป การหยุดเมลขาออกจะทำให้ฉันทดสอบการตั้งค่า nagios ตามที่เป็นอยู่และป้องกันการแจ้งเตือนปลอม


แท็ก solaris ถูกลบออกตามคำถามและโซลูชันไม่ได้เป็นระบบปฏิบัติการที่เฉพาะเจาะจงเลย
Steve Schnepp

คำตอบ:


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 ช่างเป็นคำตอบที่สง่างามฉันกำลังถามคำถามเดียวกัน
Kev

6

ต่อไปนี้จะส่งทุกอย่างไปที่ / dev / null:

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

สิ่งนี้จะถือว่าใน / etc / aliases ของคุณ:

bit-bucket: /dev/null

ระวังอย่าเพิ่งพิมพ์สิ่งนี้ใน - มี TAB ระหว่างสองด้านของกฎ
Erica Kane

คุณใช้ระบบอีเมลใดและคุณเพิ่มกฎนั้นไว้ที่ไหน
teknopaul

sendmail มาตรฐานจาก sendmail.org กฎได้รับการเพิ่มใน sendmail.mc จากนั้น sendmail.cf จะถูกสร้างตามระบบปฏิบัติการ / การกระจายของคุณ
adamo

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.