Envie todos os e-mails enviados para / dev / null

11

Com o sendmail, como você enviaria todos os e-mails enviados para / dev / null ou apenas impediria que os e-mails fossem enfileirados ou enviados?

Em uma caixa de nagios de desenvolvimento, quero impedir o envio de e-mails para que as notificações não sejam descartadas. Parar o correio de saída me permitirá testar a configuração do nagios como está e evitar notificações espúrias.

    
por cwebber 23.02.2011 / 22:18

2 respostas

8

Eu fiz isso na minha caixa de desenvolvimento, desabilitando o sendmail completamente e, em seguida, tendo um simples script perl escutar na porta SMTP e despejo os e-mails em um diretório. Tenho certeza que é possível fazer com a configuração do sendmail, mas o script perl foi muito mais fácil. Aqui está despojado para o essencial:

#!/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); 
} 
    
por 23.02.2011 / 22:42
5

O seguinte envia tudo para / dev / null:

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

Isso pressupõe que no seu / etc / aliases:

bit-bucket: /dev/null
    
por 03.03.2011 / 15:55