Envie todos os emails de saída para / dev / null

12

Com o sendmail, como você envia todos os emails de saída para / dev / null ou apenas evita que os emails sejam enfileirados ou enviados?

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

cwebber
fonte
Removida a etiqueta solaris, conforme a pergunta, e a solução não é específica para o sistema operacional.
Steve Schnepp

Respostas:

8

Fiz isso na minha caixa de desenvolvimento, desativando completamente o sendmail e fazendo com que um script perl simples escute na porta SMTP e despeje os e-mails em um diretório. Tenho certeza de que é possível fazer com a configuração do sendmail, mas o script perl foi muito mais fácil. Aqui está o básico:

#!/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
fonte
Esta é uma solução ainda melhor do que eu estava pensando. Obrigado.
cwebber
+1 Que solução elegante, eu estava prestes a fazer a mesma pergunta.
Kev
6

O seguinte envia tudo para / dev / null:

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

Isso pressupõe que em seus / etc / aliases:

bit-bucket: /dev/null
adamo
fonte
Cuidado para não digitar apenas isso - existe uma TAB entre os dois lados da regra.
Erica Kane
Qual sistema de email você está usando e onde você adiciona essa regra?
teknopaul
Sendmail padrão em sendmail.org. A regra é adicionada ao sendmail.mc e o sendmail.cf é produzido de acordo com as especificações do seu sistema operacional / distribuição.
Adamo
0

tente smtp-sink, disponível no linux

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

pânico do kernel
fonte