모든 발신 메일을 / dev / null로 보내기


12

sendmail을 사용하면 보내는 모든 메일을 / dev / null로 보내거나 전자 메일이 대기열에 들어가거나 전혀 보내지 못하게하려면 어떻게합니까?

개발 nagios 상자에서 메일이 발송되지 않도록 알림이 발송되지 않도록하고 싶습니다. 발신 메일을 중지하면 nagios 구성을 그대로 테스트하고 허위 알림을 방지 할 수 있습니다.


질문으로 solaris 태그를 제거했으며 솔루션은 OS에 전혀 국한되지 않습니다.
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.org의 표준 sendmail. 규칙이 sendmail.mc에 추가 된 다음 sendmail.cf는 OS / 배포의 사양에 따라 생성됩니다.
adamo

0

리눅스에서 사용 가능한 smtp-sink를 사용해보십시오

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.