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

Salman ® informaciones en salman.es
Lun Sep 21 12:27:05 CEST 2009


Obviamente tienes que personalizarlo, concretamente los ficheros:

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

Yo lo tengo preparado para correr en varios servidores por lo que esta con esos datos.

Yo que tu lo cambiaria por:

>  $entrada= "/tmp/rechazos.log";
>  $salida= "/tmp/Rechazos.$Fecha.txt";
>  $FicheroEntrada="/var/log/maillog";
>  $NombreServidor="Mi_Servidor";

Y despues en funcion del tipo de rechazos que tengas tendras que ir ajustando cada entrada:

>  if ($dos =~ /Frase en mi rechazo/) {



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

----- Mensaje original ----- 
De: "Sergio Gallego" <sergio.gallego en servintex.net>
Para: "Salman ®" <correo en salman.es>
CC: <postfix-es en lists.wl0.org>
Enviado: lunes, 21 de septiembre de 2009 12:11
Asunto: Re: [postfix-es] [OT] informe "rejects" correos


Hola a todos, he intentado correr el script de Salman en una debian pero
no me ha funcionado. He cambiado el valor del fichero donde coge los
correos de maillog a mail.log pero no sé si le tengo que pasar algún
valor al script o no. La configuración que tengo en mi servidor es de
usuarios y dominios virtuales con mysql.

Un saludo, Sergio.


Salman ® escribió:
> 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
>
> _______________________________________________
> List de correo postfix-es para tratar temas del MTA postfix en español
> postfix-es en lists.wl0.org
> http://lists.wl0.org/mailman/listinfo/postfix-es
>


_______________________________________________
List de correo postfix-es para tratar temas del MTA postfix en español
postfix-es en lists.wl0.org
http://lists.wl0.org/mailman/listinfo/postfix-es 



More information about the postfix-es mailing list