[postfix-es] [OT] informe "rejects" correos

Salman ® informaciones en salman.es
Jue Sep 3 16:45:46 CEST 2009


No es ningun comando, es un script que he preparado leyendo todos los "rejects" del dia anterior del 
"maillog"

Si a alguien le interesa:

============================================================
#!/usr/bin/perl
################################


 @mesabre = ('nulo','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
 @diasmes = ('0','31','28','31','30','31','30','31','31','30','31','30','31');

 ($nulo,$nulo,$nulo,$dia,$mes,$nulo,$nulo) = localtime(time);

 $diafin=$dia - 1;
 $mesfin=$mes +1;

 if ($diafin == 0) {
  $mesfin--;
  if ($mesfin == 0) {
   $mesfin=12;
  }
  $diafin=$diasmes[$mesfin];
 }


 $mescomparo = $mesabre[$mesfin];

 $Fecha="$diafin.$mescomparo";

 if ($diafin < 10) {
  $diafin = " $diafin";
 }

 $FechaBusqueda="'$mescomparo $diafin '";


 $entrada= "/ScriptsCron/Apedra.rechazos.log";
 $salida= "/ScriptsCron/Rechazos.Apedra.$Fecha.txt";
 $FicheroEntrada="/var/log/maillog";
 $NombreServidor="/ScriptsCron/NombreServidor.txt";

 system `grep $FechaBusqueda $FicheroEntrada | grep "reject: " > $entrada`;

 open (LISDOM, "$entrada");
 @Rechazos= <LISDOM>;
 close LISDOM;

 my $uno="";
 my $dos="";
 my $ContadorRechazos=0;


 open OUTPUT,">" . $salida;

 foreach $linea (@Rechazos)   {


  ($fecha,$Rechazo) = split (/reject:/,$linea);
  $ContadorRechazos++;
  ($uno,$dos) = split (/\]: /,$Rechazo);
  if ($dos eq "") {
   ($uno,$dos) = split (/\]; /,$Rechazo);
  }


 if ($dos =~ /spamcop.net/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." spamcop.net";
  $Causa{$Razon}++;
  next;
 }
 if ($dos =~ /spamhaus.org/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." spamhaus.org";
  $Causa{$Razon}++;
  next;
 }
 if ($dos =~ /abuseat.org/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." abuseat.org";
  $Causa{$Razon}++;
  next;
 }

 if ($dos =~ /sorbs.net/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." sorbs.net";
  $Causa{$Razon}++;
  next;
 }
 if ($dos =~ /njabl.org/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." njabl.org";
  $Causa{$Razon}++;
  next;
 }

 if ($dos =~ /softfail/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." SPF softfail";
  $Causa{$Razon}++;
  next;
 }
 if ($dos =~ / fail /) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." SPF fail";
  $Causa{$Razon}++;
  next;
 }
 if ($dos =~ /2  permerror/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." SPF 2  permerror";
  $Causa{$Razon}++;
  next;
 }
 if ($dos =~ /permerror/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." SPF permerror";
  $Causa{$Razon}++;
  next;
 }
 if ($dos =~ /temperror/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." SPF temperror";
  $Causa{$Razon}++;
  next;
 }
 if ($dos =~ /Greylist/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." Greylist";
  $Causa{$Razon}++;
  next;
 }

 if ($dos =~ /User unknown/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." Usuario desconocido";
  $Causa{$Razon}++;
  next;
 }
 if ($dos =~ /Message size exceeds fixed limit/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." Exceso de tamaño";
  $Causa{$Razon}++;
  next;
 }

 if ($dos =~ /Unknown account/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." Usuario desconocido";
  $Causa{$Razon}++;
  next;
 }
 if ($dos =~ /Usuario desconocido/) {
  $Razon="Access Usuario desconocido";
  $Causa{$Razon}++;
  next;
 }
 if ($dos =~ /Analisis: Programa/) {
  $Razon="Header Programa no aceptable";
  $Causa{$Razon}++;
  next;
 }
 if ($dos =~ /Analisis: Adjunto/) {
  $Razon="Header Adjunto no aceptable";
  $Causa{$Razon}++;
  next;
 }

 if ($dos =~ /Analisis: Fecha incorrecta /) {
  $Razon="Header Fecha incorrecta ";
  $Causa{$Razon}++;
  next;
 }


 if ($dos =~ /Dominio en lista negra/) {
  $Razon="Header Dominio en lista negra";
  $Causa{$Razon}++;
  next;
 }
 if ($dos =~ /Correo en lista negra/) {
  $Razon="Header Dominio en lista negra";
  $Causa{$Razon}++;
  next;
 }
 if ($dos =~ /Rechazado: Red de servidores en lista negra/) {
  $Razon="Header Dominio en lista negra";
  $Causa{$Razon}++;
  next;
 }
 if ($dos =~ /Lenguaje no reconocible/) {
  $Razon="Header Lenguaje no reconocible";
  $Causa{$Razon}++;
  next;
 }


 if ($dos =~ /Domain not found/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." Domain not found";
  $Causa{$Razon}++;
  next;
 }

 if ($dos =~ /Helo command rejected/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." Helo command rejected";
  $Causa{$Razon}++;
  next;
 }
 if ($dos =~ /fully-qualified/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." Sintaxis erronea";
  $Causa{$Razon}++;
  next;
 }

 if ($dos =~ /Relay access denied/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." Relay access denied";
  $Causa{$Razon}++;
  next;
 }

 if ($dos =~ /Access denied/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." Relay access denied";
  $Causa{$Razon}++;
  next;
 }

 if ($dos =~ /pipelining/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." pipelining";
  $Causa{$Razon}++;
  next;
 }
 if ($dos =~ /Server configuration problem/) {
  ($uno,$dos) = split (/ /,$dos);
  $Razon=$uno." Server configuration problem";
  $Causa{$Razon}++;
  next;
 }

  print OUTPUT "$dos";
 }


 foreach $valor (sort keys %Causa) {
  print OUTPUT "$valor $Causa{$valor} \n";
 }
 print OUTPUT "XX Total rechazados: $ContadorRechazos \n";

 close OUTPUT;

 open (LISDOM, "$salida");
 @Rechazos= <LISDOM>;
 close LISDOM;

 @Rechazos= sort (@Rechazos);



 unlink $entrada;
 unlink $salida;
 #print "\n en Rechazos\n";

 $NombreServidor= "/ScriptsCron/NombreServidor.txt";
 open (LISDOM, "$NombreServidor");
 $Servidor= <LISDOM>;
 close LISDOM;

    $mailprog = '/usr/lib/sendmail -t -f informerechazos@'.$Servidor;
 $Envia='informerechazos@'.$Servidor;
 $Destino='informerechazos@'.$Servidor;
 $Asunto ="$Servidor $Fecha Causas Rechazos ";

   open (MAIL, "|$mailprog");
   print MAIL "From: $Envia \n";
   print MAIL "To: $Destino \n";
   print MAIL "Subject: [Informe_Rechazos] $Asunto\n\n";

   print MAIL "\n\n @Rechazos \n";
   close MAIL;

============================================================

--
Saludos
Salvador Guzman
Salman PSL
Vigo, Galicia, España
+34 986.21.30.27
Correo @Salman.ES
http://Salman.EU/

----- Mensaje original ----- 
De: "Walter Garcia" <walter en phpgas.com.ar>
Para: "Salman ®" <correo en salman.es>
CC: "postfix español" <postfix-es en lists.wl0.org>
Enviado: jueves, 03 de septiembre de 2009 13:22
Asunto: Re: [postfix-es] Sobre configuración en main.cf


Como obtenes ese informacion?
Con que comando?

Gracias

Walter



More information about the postfix-es mailing list