[postfix-es] [OT] informe "rejects" correos
David Gonzalez
david en delpozo.org
Jue Sep 3 23:52:15 CEST 2009
Muchas gracias, habrá que probarlo...
On Thursday 03 September 2009 16:45:46 Salman ® wrote:
> 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
--
David Gonzalez
david en delpozo.org
Http://www.guadawireless.net
GNU/Linux registered user #139902
jabber: david en jabber.guadawireless.org
Enlace a un proyecto que tengo en marcha:
http://sebuscapiso.biz
More information about the postfix-es
mailing list