• Publicidad

Extracción de código de estado en una respuesta por correo

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Extracción de código de estado en una respuesta por correo

Notapor felloz » 2018-12-10 14:12 @633

Buenas tardes.

Tengo un problema con el siguiente código y un conocido en Stackoverflow me recomendó utilizar esta plataforma para buscar ayuda.

El siguiente código dejó de funcionar después de una actualización que hizo en una oportunidad una persona.

Desconozco qué actualización hizo pero logramos hacer funcionar bien la información que llega a la bandeja de devueltos. Sin embargo, el perl, por alguna extraña razón, no logra procesar de forma eficiente las query.

Cualquier ayuda que me puedan brindar estaría infinitamente agradecido.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4. use warnings;
  5.  
  6. #use diagnostics;
  7. use File::Copy;
  8. use Mail::Box;
  9. use Mail::Box::Mbox;
  10. use POSIX qw(strftime);
  11. use DBI;
  12. use Encode qw(decode encode);
  13. use Net::SMTP;
  14. use MIME::Lite;
  15.  
  16. my %config;
  17.  
  18. my $mbox_user;
  19. my $mbox_uid_user;
  20. my $mbox_mode;
  21. my $mbox_guid;
  22. my $mbox_uid_grp;
  23. my $mbox_uid;
  24. my $mbox_file;
  25. my $mbox_file_tmp;
  26. my $folder;
  27. my $messageID;
  28. my $body;
  29. my $email;
  30. my $smtpCode;
  31. my $smtpAction;
  32. my $smtpStatus;
  33. my $smtpDiagnosticCode;
  34. my $smtpRemoteMta;
  35. my $smtpLastAttemptDate;
  36. my $smtpCodeDetail;
  37. my $adminId;
  38. my $usuarioId;
  39. my $campanaId;
  40. my $listaId;
  41. my $ipTempFiler;
  42. my $devueltosTotal;
  43. my $campanasTotal;
  44. my %devueltos;
  45. my %campanas;
  46. my $startDate;
  47. my $endDate;
  48. my $dbh;
  49. my $sth;
  50. my $sth2;
  51. my $query;
  52. my $query1;
  53. my $queryColumns;
  54. my $queryValues;
  55. my $emailFromName;
  56. my $emailFrom;
  57. my $emailTo;
  58. my $emailSubject;
  59. my $emailMensaje;
  60. my $emailBody;
  61. my $directoryDevueltos;
  62. my $fileNameDevueltos;
  63. my $string;
  64.  
  65. $mbox_user     = "devueltos";
  66. $mbox_uid_user = "devueltos";
  67. $mbox_mode     = "0660";
  68. $mbox_uid_grp  = "mail";
  69.  
  70. #$mbox_guid = "mail";
  71. $mbox_file     = "/var/spool/mail/$mbox_user";
  72. $mbox_file_tmp = "/var/spool/mail/$mbox_user-tmp";
  73.  
  74. $directoryDevueltos = "/home/directorio/data/devueltos";
  75. $fileNameDevueltos = "devueltos-virt-" . strftime( "%Y%m%d-%H%M%S", localtime(time) ) . ".sql";
  76.  
  77. $config{'dbhost'}         = "127.0.0.1";
  78. $config{'dbname'}         = "basededatosnombre";
  79. $config{'dbusername'}     = "usuariobasededatos";
  80. $config{'dbuserpassword'} = "contrasenabasededatos";
  81.  
  82. $emailFromName = 'Administrador Devueltos';
  83. $emailFrom     = '[email protected]';
  84. $emailTo       = '[email protected]';
  85.  
  86. #$emailTo       = '';
  87. #$emailTo       = '';
  88. $emailSubject = '';
  89. $emailMensaje = "";
  90.  
  91. print $mbox_file. "\n";
  92. print $mbox_file_tmp. "\n";
  93.  
  94. $startDate = strftime( "%Y/%m/%d %H:%M:%S", localtime(time) );
  95.  
  96. if ( -e $mbox_file ) {
  97.  
  98.     move( $mbox_file, $mbox_file_tmp );
  99.  
  100.     open( OUTFILE, ">$mbox_file" ) || die "No se puede crear el archivo : $mbox_file";
  101.     close(OUTFILE);
  102.  
  103.     $mbox_uid  = ( getpwnam($mbox_uid_user) )[2];
  104.     $mbox_guid = ( getpwnam($mbox_uid_grp) )[3];
  105.  
  106.     chown( $mbox_uid, $mbox_guid, $mbox_file );
  107.     system("chmod  $mbox_mode $mbox_file");
  108.  
  109.     #   if( -e $mbox_file_tmp ){
  110.  
  111.     system("chmod  $mbox_mode $mbox_file_tmp");
  112.  
  113.     $folder = new Mail::Box::Mbox( 'folder' => $mbox_file_tmp, 'access' => 'rw' );
  114.  
  115.     my $i = 0;
  116.  
  117.     %devueltos = ();
  118.  
  119.     foreach my $message ( $folder->messages ) {
  120.  
  121.         $smtpCode            = undef;
  122.         $smtpCodeDetail      = undef;
  123.         $email               = undef;
  124.         $smtpAction          = undef;
  125.         $smtpStatus          = undef;
  126.         $smtpDiagnosticCode  = undef;
  127.         $smtpCodeDetail      = undef;
  128.         $smtpRemoteMta       = undef;
  129.         $smtpLastAttemptDate = undef;
  130.         $usuarioId           = undef;
  131.         $adminId             = undef;
  132.         $campanaId           = undef;
  133.         $listaId             = undef;
  134.         $ipTempFiler         = undef;
  135.  
  136.         $body = $message->decoded();
  137.  
  138.         foreach ( split( /\n/, $body ) ) {
  139.             next if (/^\s*$/);
  140.  
  141.             if ( $_ =~ /^(\d{3}\s\d{1}\.\d{1}\.\d{1})/ig ) {
  142.                 $smtpCode = $1;
  143.             }
  144.             elsif ( $_ =~ /^\d{3}\s\d{1}\.\d{1}\.\d{1}\s(.*)$/ig ) {
  145.                 $smtpCodeDetail = $1;
  146.             }
  147.             elsif ( $_ =~ /^Final-Recipient:\sRFC822;\s([A-z0-9_\-\.]+@[A-z0-9_\-\.]+\.\w+)+$/ig ) {
  148.                 $email = $1;
  149.             }
  150.             elsif ( $_ =~ /^Action:\s(\w+)$/ ) {
  151.                 $smtpAction = $1;
  152.             }
  153.             elsif ( $_ =~ /^Status:\s(\d\.\d\.\d)$/ ) {
  154.                 $smtpStatus = $1;
  155.             }
  156.             elsif ( $_ =~ /^Diagnostic-Code:\sSMTP;\s(.*)$/ ) {
  157.                 $smtpDiagnosticCode = $1;
  158.  
  159.                 if (   ( $smtpDiagnosticCode =~ /(550\sSC\-[\d]{3})/ )
  160.                     or ( $smtpDiagnosticCode =~ /(550\sOU\-[\d]{3})/ )
  161.                     or ( $smtpDiagnosticCode =~ /(550\sDY\-[\d]{3})/ )
  162.                     or ( $smtpDiagnosticCode =~ /(421\sRP\-[\d]{3})/ ) ) {
  163.                     $ipTempFiler = 1;
  164.                 }
  165.             }
  166.             elsif ( $_ =~ /^Remote-MTA:\sDNS;\s([A-Za-z0-9\.\-]+)$/ ) {
  167.                 $smtpRemoteMta = $1;
  168.             }
  169.             elsif ( $_ =~ /^Last-Attempt-Date:\s[A-Za-z]+\,\s(\d{1,2}\s[A-Za-z]+\s\d{4}\s[0-9:]{8}\s[0-9\-]{5})/ig ) {
  170.                 $smtpLastAttemptDate = convert_date($1);
  171.             }
  172.             elsif ( $_ =~ /^X-RSidusuario:\s(\d+)$/ ) {
  173.                 $usuarioId = $1;
  174.             }
  175.             elsif ( $_ =~ /^X-RS-idadmin:\s(\d+)$/ ) {
  176.                 $adminId = $1;
  177.             }
  178.             elsif ( $_ =~ /^X-RS-idcamp:\s(\d+)$/ ) {
  179.                 $campanaId = $1;
  180.             }
  181.             elsif ( $_ =~ /^X-RS-idlist:\s(\d+)$/ ) {
  182.                 $listaId = $1;
  183.             }
  184.             if ( defined $smtpCode ) {
  185.                 if ( $smtpCode =~ /^550\s\d\.\d\.\d$/ ) {
  186.                     if (    ( defined $usuarioId )
  187.                         and ( defined $adminId )
  188.                         and ( defined $campanaId )
  189.                         and ( defined $listaId ) ) {
  190.                         $devueltos{$i}{'smtpcode'}   = $smtpCode;
  191.                         $devueltos{$i}{'email'}      = $email;
  192.                         $devueltos{$i}{'smtpaction'} = $smtpAction;
  193.                         $devueltos{$i}{'smtpstatus'} = $smtpStatus;
  194.                         if ( defined $smtpCodeDetail ) {
  195.                             $smtpDiagnosticCode .= " | " . $smtpCodeDetail;
  196.                         }
  197.                         if ( defined $smtpDiagnosticCode ) {
  198.                             $devueltos{$i}{'smtpdiagnosticcode'} = strip_slashes($smtpDiagnosticCode);
  199.                         }
  200.                         $devueltos{$i}{'smtpremotemta'}      = $smtpRemoteMta;
  201.                         $devueltos{$i}{'smtplastattempdate'} = $smtpLastAttemptDate;
  202.                         $devueltos{$i}{'userid'}             = $usuarioId;
  203.                         $devueltos{$i}{'adminid'}            = $adminId;
  204.                         $devueltos{$i}{'campanaid'}          = $campanaId;
  205.                         $devueltos{$i}{'listaid'}            = $listaId;
  206.                         if ( not defined $ipTempFiler ) {
  207.                             $devueltos{$i}{'status'} = 1;
  208.                         }
  209.                     }
  210.                 }
  211.             }
  212.             else {
  213.                 if (    ( defined $usuarioId )
  214.                     and ( defined $adminId )
  215.                     and ( defined $campanaId )
  216.                     and ( defined $listaId ) ) {
  217.                     $devueltos{$i}{'email'}      = $email;
  218.                     $devueltos{$i}{'smtpaction'} = $smtpAction;
  219.                     $devueltos{$i}{'smtpstatus'} = $smtpStatus;
  220.                     if ( defined $smtpDiagnosticCode ) {
  221.                         $devueltos{$i}{'smtpdiagnosticcode'} = strip_slashes($smtpDiagnosticCode);
  222.                     }
  223.                     if ( defined $smtpRemoteMta ) {
  224.                         $devueltos{$i}{'smtpremotemta'} = $smtpRemoteMta;
  225.                     }
  226.                     $devueltos{$i}{'smtplastattempdate'} = $smtpLastAttemptDate;
  227.                     $devueltos{$i}{'userid'}             = $usuarioId;
  228.                     $devueltos{$i}{'adminid'}            = $adminId;
  229.                     $devueltos{$i}{'campanaid'}          = $campanaId;
  230.                     $devueltos{$i}{'listaid'}            = $listaId;
  231.                 }
  232.             }
  233.  
  234.         }                                      #end foreach body
  235.  
  236.         $message->delete();
  237.  
  238.         $i++;
  239.     }                                          #end foreach $folder->messages
  240.  
  241.     $folder->close( 'write' => 'MODIFIED' );
  242.  
  243.     $devueltosTotal = scalar keys(%devueltos);
  244.  
  245.     if ( scalar keys(%devueltos) > 0 ) {
  246.  
  247.         $dbh = DBI->connect( "DBI:Pg:dbname=$config{'dbname'};host=$config{'dbhost'}",
  248.             "$config{'dbusername'}", "$config{'dbuserpassword'}" );
  249.         $dbh->{RaiseError} = 1;
  250.         $dbh->{PrintError} = 0;
  251.         $dbh->{AutoCommit} = 0;
  252.         if ( !$dbh ) {
  253.             print "Error al conectar a DB";
  254.         }
  255.  
  256.         open( FSQL, ">$directoryDevueltos/$fileNameDevueltos" )
  257.             || die "No se puede crear el archivo : $directoryDevueltos/$fileNameDevueltos";
  258.  
  259.         $string = "BEGIN;\n";
  260.  
  261.         for my $row ( sort keys %devueltos ) {
  262.  
  263.             $query        = undef;
  264.             $queryColumns = undef;
  265.             $queryValues  = undef;
  266.  
  267.             if ( exists( $campanas{ $devueltos{$row}{'campanaid'} } ) ) {
  268.                 $campanas{ $devueltos{$row}{'campanaid'} }{'count'}++;
  269.                 $campanas{ $devueltos{$row}{'campanaid'} }{'adminid'} = $devueltos{$row}{'adminid'};
  270.             }
  271.             else {
  272.                 $campanas{ $devueltos{$row}{'campanaid'} }{'count'}   = 1;
  273.                 $campanas{ $devueltos{$row}{'campanaid'} }{'adminid'} = $devueltos{$row}{'adminid'};
  274.             }
  275.  
  276.             if ( defined $devueltos{$row}{'smtpcode'} ) {
  277.                 $queryColumns .= "smtpcode1, ";
  278.                 $queryValues  .= " '" . $devueltos{$row}{'smtpcode'} . "', ";
  279.             }
  280.             if ( defined $devueltos{$row}{'email'} ) {
  281.                 $queryColumns .= "email, ";
  282.                 $queryValues  .= " '" . $devueltos{$row}{'email'} . "', ";
  283.             }
  284.             if ( defined $devueltos{$row}{'smtpaction'} ) {
  285.                 $queryColumns .= "smtpaction, ";
  286.                 $queryValues  .= " '" . $devueltos{$row}{'smtpaction'} . "', ";
  287.             }
  288.             if ( defined $devueltos{$row}{'smtpstatus'} ) {
  289.                 $queryColumns .= "smtpcode, ";
  290.                 $queryValues  .= " '" . $devueltos{$row}{'smtpstatus'} . "', ";
  291.             }
  292.             if ( defined $devueltos{$row}{'smtpdiagnosticcode'} ) {
  293.                 my $deletechar = $devueltos{$row}{'smtpdiagnosticcode'} =~ s/'//g;
  294.                 $queryColumns .= "smtpprefixdetail, ";
  295.  
  296.                 #                                       $queryValues .= " E'".encode('utf8', decode('iso-8859-1', $devueltos{$row}{'smtpdiagnosticcode'}))."', ";
  297.                 $queryValues .= " '" . encode( 'utf8', decode( 'iso-8859-1', $deletechar ) ) . "', ";
  298.             }
  299.             if ( defined $devueltos{$row}{'smtpremotemta'} ) {
  300.                 $queryColumns .= "smtpremote, ";
  301.                 $queryValues  .= " '" . $devueltos{$row}{'smtpremotemta'} . "', ";
  302.             }
  303.             if ( defined $devueltos{$row}{'smtplastattempdate'} ) {
  304.                 $queryColumns .= "smtpdate, ";
  305.                 $queryValues  .= " '" . $devueltos{$row}{'smtplastattempdate'} . "', ";
  306.             }
  307.             if ( defined $devueltos{$row}{'userid'} ) {
  308.                 $queryColumns .= "id_usuario, ";
  309.                 $queryValues  .= "$devueltos{$row}{'userid'}, ";
  310.             }
  311.             if ( defined $devueltos{$row}{'adminid'} ) {
  312.                 $queryColumns .= "id_admin, ";
  313.                 $queryValues  .= "$devueltos{$row}{'adminid'}, ";
  314.             }
  315.             if ( defined $devueltos{$row}{'campanaid'} ) {
  316.                 $queryColumns .= "id_campana, ";
  317.                 $queryValues  .= "$devueltos{$row}{'campanaid'}, ";
  318.             }
  319.             if ( defined $devueltos{$row}{'listaid'} ) {
  320.                 $queryColumns .= "id_lista, ";
  321.                 $queryValues  .= "$devueltos{$row}{'listaid'}, ";
  322.             }
  323.             if ( defined $devueltos{$row}{'status'} ) {
  324.                 $queryColumns .= "status, ";
  325.                 $queryValues  .= "true, ";
  326.             }
  327.  
  328.             $queryColumns .= "fecha ";
  329.             $queryValues  .= "now() ";
  330.  
  331.             $query = "INSERT INTO ex_tbl_devueltos ($queryColumns) VALUES ($queryValues);";
  332.             $string .= $query . "\n";
  333.             $sth = $dbh->prepare($query) or die "Can't prepare SQL statement: ", $dbh->errstr(), "\n";
  334.             $sth->execute() or die "Can't execute SQL statement: ", $sth->errstr(), "\n";
  335.  
  336.         }
  337.  
  338.         $dbh->commit();
  339.  
  340.         if ($@) {
  341.             $dbh->rollback();
  342.             move( $mbox_file_tmp, $mbox_file_tmp . "_" . strftime( "%Y%m%d%H%M%S", localtime(time) ) );
  343.         }
  344.  
  345.         $campanasTotal = scalar keys(%campanas);
  346.  
  347.         if ( scalar keys(%campanas) > 0 ) {
  348.  
  349.             for my $idcampana ( sort keys %campanas ) {
  350.  
  351.                 $query
  352.                     = "SELECT id_campana FROM tablas WHERE id_admin = '"
  353.                     . $campanas{$idcampana}{'adminid'}
  354.                     . "' AND id_campana =  '"
  355.                     . $idcampana . "'; ";
  356.                 $sth = $dbh->prepare($query) or die "Can't prepare SQL statement: ", $dbh->errstr(), "\n";
  357.                 $sth->execute() or die "Can't execute SQL statement: ", $sth->errstr(), "\n";
  358.                 if ( $sth->rows > 0 ) {
  359.  
  360.                     $query1
  361.                         = "UPDATE tablas SET devueltos = devueltos + "
  362.                         . $campanas{$idcampana}{'count'}
  363.                         . ", recibidos = recibidos - "
  364.                         . $campanas{$idcampana}{'count'}
  365.                         . "  WHERE id_campana = '"
  366.                         . $idcampana . "'; ";
  367.                     print $query1 . "\n";
  368.                     $sth2 = $dbh->prepare($query1) or die "Can't prepare SQL statement: ", $dbh->errstr(), "\n";
  369.                     $sth2->execute() or die "Can't execute SQL statement: ", $sth2->errstr(), "\n";
  370.                 }
  371.             }
  372.         }
  373.  
  374.         if ( defined($sth) ) {
  375.             $sth->finish() or warn "finish failed: $!\n";
  376.         }
  377.  
  378.         if ( defined($sth2) ) {
  379.             $sth2->finish() or warn "finish failed: $!\n";
  380.         }
  381.  
  382.         if ( defined($dbh) ) {
  383.             $dbh->disconnect() or warn "Disconnection failed: $!\n";
  384.         }
  385.         $string .= "COMMIT;\n";
  386.         print FSQL $string;
  387.         close FSQL;
  388.     }
  389.  
  390.     $endDate = strftime( "%Y/%m/%d %H:%M:%S", localtime(time) );
  391.  
  392.     $emailBody = "El proceso finalizo con exito\n\n";
  393.     $emailBody .= "================================\n";
  394.     $emailBody .= "Total devueltos procesados: " . $devueltosTotal . "\n";
  395.     $emailBody .= "\n";
  396.     $emailBody .= "Total campanas procesados: " . $campanasTotal . "\n";
  397.     $emailBody .= "================================\n";
  398.     $emailBody .= "Hora Inicio: " . $startDate . "\n";
  399.     $emailBody .= "Hora Final: " . $endDate . "\n";
  400.     $emailBody .= "================================\n\n";
  401.     $emailBody .= "Administrador\n";
  402.     $emailMensaje = encode( 'utf8', decode( 'iso-8859-1', $emailBody ) );
  403.  
  404.     &send_mail( $emailFromName, $emailFrom, $emailTo, $emailSubject, $emailMensaje );
  405.  
  406.     #   }#end if $mbox_file_tmp
  407.  
  408. }                                              #end if $mbox_file;
  409.  
  410. print "Finalizo " . $startDate . "--" . $endDate . "\n";
  411.  
  412. sub convert_date {
  413.  
  414.     my ( $dateString, @datePart );
  415.     my ( $dateDay,    $dateMonth, $dateYear, $dateTime, $dateZone );
  416.     my ( $month,      $date );
  417.  
  418.     $dateString = shift;
  419.  
  420.     @datePart = split( " ", $dateString );
  421.  
  422.     $dateDay   = $datePart[0];
  423.     $dateMonth = $datePart[1];
  424.     $dateYear  = $datePart[2];
  425.     $dateTime  = $datePart[3];
  426.     $dateZone  = $datePart[4];
  427.  
  428.     $month = 0;
  429.  
  430.     if ( $dateMonth eq 'Jan' ) {
  431.         $month = "01";
  432.     }
  433.     elsif ( $dateMonth eq 'Feb' ) {
  434.         $month = "02";
  435.     }
  436.     elsif ( $dateMonth eq 'Mar' ) {
  437.         $month = "03";
  438.     }
  439.     elsif ( $dateMonth eq 'Apr' ) {
  440.         $month = "04";
  441.     }
  442.     elsif ( $dateMonth eq 'May' ) {
  443.         $month = "5";
  444.     }
  445.     elsif ( $dateMonth eq 'Jun' ) {
  446.         $month = "06";
  447.     }
  448.     elsif ( $dateMonth eq 'Jul' ) {
  449.         $month = "07";
  450.     }
  451.     elsif ( $dateMonth eq 'Aug' ) {
  452.         $month = "08";
  453.     }
  454.     elsif ( $dateMonth eq 'Sep' ) {
  455.         $month = "09";
  456.     }
  457.     elsif ( $dateMonth eq 'Oct' ) {
  458.         $month = "10";
  459.     }
  460.     elsif ( $dateMonth eq 'Nov' ) {
  461.         $month = "11";
  462.     }
  463.     elsif ( $dateMonth eq 'Dec' ) {
  464.         $month = "12";
  465.     }
  466.  
  467.     $month   = sprintf( "%02d", $month );
  468.     $dateDay = sprintf( "%02d", $dateDay );
  469.  
  470.     $date = "$dateYear/$month/$dateDay $dateTime $dateZone";
  471.  
  472.     if ( $dateZone eq '-0480' ) {
  473.         $date = "$dateYear/$month/$dateDay $dateTime";
  474.     }
  475.     return $date;
  476. }
  477.  
  478. sub strip_slashes {
  479.  
  480.     my $string = shift;
  481.  
  482.     $string =~ s/\'/\\'/g;
  483.     $string =~ s/\"/\\"/g;
  484.  
  485.     return $string;
  486. }
  487.  
  488. sub send_mail {
  489.  
  490.     my $emailFromName = shift;
  491.     my $emailFrom     = shift;
  492.     my $emailTo       = shift;
  493.     my $emailSubject  = shift;
  494.     my $emailMensaje  = shift;
  495.  
  496.     my $smtp = Net::SMTP->new(
  497.         'Host'     => '127.0.0.1',
  498.         'Hello'    => 'url',
  499.         'Timeout'  => 10,
  500.         'Debug'    => 0,                       # Change to a 1 to turn on debug messages
  501.         'Port'     => 25,
  502.         'User'     => 'usuario',
  503.         'Password' => 'contrasena',
  504.     );
  505.  
  506.     if ( not $smtp ) {
  507.         die "Imposible conectar a servidor SMTP\n";
  508.         next;
  509.     }
  510.     $smtp->mail($emailFrom);
  511.  
  512.     $smtp->to($emailTo);
  513.  
  514.     my $msg      = "";
  515.     my $maildata = "";
  516.  
  517.     $msg = MIME::Lite::->build(
  518.         From     => '' . $emailFromName . ' <' . $emailFrom . '>',
  519.         To       => '' . $emailTo . '',
  520.         Subject  => $emailSubject,
  521.         Encoding => '8bit',
  522.         Type     => 'multipart/alternative'
  523.     );
  524.  
  525.     $msg->attr( 'content-type.charset' => 'utf-8' );
  526.     $msg->delete("X-Mailer");
  527.     $msg->add( "X-Mailer" => 'X-RS-Mailer' );
  528.  
  529.     $msg->attach(
  530.         Type     => 'text/plain; charset=utf-8',
  531.         Encoding => 'quoted-printable',
  532.         Data     => $emailMensaje
  533.     );
  534.  
  535.     $maildata = $msg->as_string();
  536.     $smtp->data();
  537.     $smtp->datasend($maildata);
  538.     $smtp->dataend();
  539.     $smtp->quit();
  540.  
  541.     return 1;
  542. }
  543.  
Coloreado en 0.015 segundos, usando GeSHi 1.0.8.4
Avatar de Usuario
felloz
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2018-12-10 09:11 @424

Publicidad

Re: Extracción de código de estado en una respuesta por corr

Notapor explorer » 2018-12-10 15:45 @698

Hola, felloz.

Si dices que las consultas las realiza mal, ¿qué error se genera en el motor de base de datos? Mira a ver qué sale en el registro de actividad del PostgreSQL.

Veo que el programa genera mensajes de aviso cuando ocurre un error. ¿Qué errores salen (si es que sale alguno)?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14477
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Extracción de código de estado en una respuesta por corr

Notapor felloz » 2018-12-11 08:33 @398

Utilizo la tabla donde se hace el INSERT para insertar en el campo smtpcode y en el smtpcode1, pero en el campo smtpcode1 insertamos solo si él consigue en el texto algo así como un error 550 acompañado de la descripción del error que pueden ser unos números como 5.1.1, es decir: en el campo smtpcode1 se insertaría algo como esto si es que se cumple la condición: 550 5.1.1.

El problema es que en ese campo no se está insertando nada a pesar de que están las validaciones y el contenido se encuentra en el texto. Se hace el INSERT sin el campo mencionado, es decir, que esa variable posiblemente está llegando vacía a la hora de hacer el INSERT lo que me trae como consecuencia que no pueda procesar los códigos que comienzan por 550 en el campo smtpcode1.

Adicionalmente, para que el campo smptcode1 se llene, el campo status debe venir con valor true.

Exactamente, ¿qué hace esto?
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
next if(/^\s*$/);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

y, ¿qué significa el \s*? He estado buscando en la documentación y no lo consigo encontrar.
Avatar de Usuario
felloz
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2018-12-10 09:11 @424

Re: Extracción de código de estado en una respuesta por corr

Notapor explorer » 2018-12-11 23:06 @004

Perdón por no contestar, pero el código es algo largo.

Primero te contesto a lo sencillo, y mañana lo miro con más calma.

El patrón "^\s*$" quiere decir:
  • Lo que buscamos debe coincidir entre el principio (^) y el final del patrón ($).
  • Lo que buscamos debe componerse únicamente de 0 o más espacios en blanco (\s*)
O sea, que

next if /^\s*$/;

lo que hace es "saltar" el procesamiento de la línea contenida en $_, si esta línea está completamente vacía o se compone exclusivamente de espacios en blanco.

Tienes información sobre las expresiones regulares en el documento perlre (en tu ordenador, ejecuta el comando perldoc perlre en la línea de comandos; o en la web, en inglés o en español. De la misma manera tienes una guía rápida en perlrequick y un tutorial en perlretut.

Viendo el código, hay algunas cosas que están mal.

Lo primero, todas las '/g' que están al final de las expresiones regulares EN los if(), debes quitarlas. Solo son útiles en bucles o en casos especiales de análisis de tokens, pero este no es el caso. Lo que quieres es probar una línea contra una serie de patrones. Solo necesitas el '/i' en los casos en los que aparezca texto dentro del patrón. No necesitas la 'g'.

En la línea 141 (del código que se muestra arriba, que lo he formateado un poco para que se leyera mejor), estamos buscando por el código de tres dígitos más la descripción del error con los tres dígitos separados por puntos. Hasta ahí, bien, porque se almacena en la variable "$smtpCode".

El problema está en que ese patrón no tiene indicada una marca de fin de cadena o no indica qué es lo que puede seguir a continuación de la descripción del error. Quiero decir que la línea que estamos procesando del cuerpo del mensaje contiene un texto que se ajusta a lo indicado por el patrón de la línea 144, el efecto final es que el patrón de la 141 sucede ANTES, y por el efecto del "elsif", nunca se prueba el patrón de la 144.

En resumen: si la línea coincide con el patrón de la 141, nunca se prueba el patrón de la 144.

O sea... que si tenemos varios patrones que "se parecen" o "son casi lo mismo", debemos probar siempre primero uno y luego el otro, pero no de forma alternativa (uno u otro).

Yo lo haría así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.             if ( /^(\d{3}\s+\d[.]\d[.]\d)\s*(.*)$/ ) {
  2.                 $smtpCode = $1;
  3.                 $smtpCodeDetail = (defined $2) ? $2 : "";
  4.             }
  5.             elsif # de la línea 147
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Lo he probado en la línea de comandos, y funciona:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
> perl -E ' $_="550 5.1.1"; if ( /^(\d{3}\s+\d[.]\d[.]\d)\s*(.*)$/ ) { $smtpCode = $1; $smtpCodeDetail = (defined $2) ? $2 : ""; } say "[$smtpCode]:[$smtpCodeDetail]";'                                                    
[550 5.1.1]:[]
> perl -E ' $_="550 5.1.1   "; if ( /^(\d{3}\s+\d[.]\d[.]\d)\s*(.*)$/ ) { $smtpCode = $1; $smtpCodeDetail = (defined $2) ? $2 : ""; } say "[$smtpCode]:[$smtpCodeDetail]";'
[550 5.1.1]:[]
> perl -E ' $_="550 5.1.1   ERROR Connect to server"; if ( /^(\d{3}\s+\d[.]\d[.]\d)\s*(.*)$/ ) { $smtpCode = $1; $smtpCodeDetail = (defined $2) ? $2 : ""; } say "[$smtpCode]:[$smtpCodeDetail]";'
[550 5.1.1]:[ERROR Connect to server]
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


La línea 184 y siguientes filtra solamente los casos en los que el código de error sea "^550\s\d\.\d\.\d$". Pero a continuación, en la 186 y siguientes, realiza una serie de comprobaciones para ver si tiene definidos cuatro variables más, para meter en %devueltos todos los datos. Aquí surge la duda: ¿estamos completamente seguros de que cuando leemos una línea con el smtpCode, YA tenemos definidas (hemos leído antes) las otras cuatro variables? Dicho de otro modo: ¿estamos seguros de que el código de error sucede DESPUÉS de las otras cuatro líneas?

Sería interesante que publicaras un ejemplo de lo que estás procesando. Ponlo en formato texto. Si tiene información sensible (IP, nombres, direcciones, etc.) los falseas. Es más: sería interesante un ejemplo con el 550 y otro sin él. Solo las líneas imprescindibles para poder trabajar.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14477
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Extracción de código de estado en una respuesta por corr

Notapor felloz » 2018-12-12 08:05 @378

Hay que recordar que el texto se decodifica en la línea 147 con el código: $body = $message->decoded();

Una vez el texto decodificado, es esta información la que busca:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.7.1
Remote-MTA: dns; otromail-com.olc.protection.outmail.com
Diagnostic-Code: smtp; 550 5.7.1 Unfortunately, messages from [192.168.0.24]
    weren't sent. Please contact your Internet service provider since part of
    their network is on our block list (S3140). You can also refer your
    provider to htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [SN1NAM01FT021.eop-nam01.prod.protection.outmail.com]

--123454321123.1544038977/mailasd.dominio.com
Content-Type: text/rfc822-headers; charset="PERL"
Content-Description: Undelivered Message Headers

Return-Path: <[email protected]>
Received: from localhost (localhost.localdomain [127.0.0.1])
        by mailasd.dominio.com (Postfix) with SMTP id 123454321123
        for <[email protected]>; Wed,  5 Dec 2018 15:42:57 -0400 (-04)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailasd.dominio.com 123454321123
From: Amigos Car Rental <[email protected]>
Subject: Bienvenidas Criptomonedas en Amigos Car Rental
To:Belkis Bello <[email protected]>
Sender: Amigos Car Rental <[email protected]>
Errors-To: [email protected]
Reply-To: [email protected]
List-unsubscribe: <malto:[email protected]?subject=unsubscribe>,<htps://domimio.com/directory/?accion=frmremover&A=1117&[email protected]&L=28719&C=177301>
X-RSidusuario: 16860
X-RS-idadmin: 1117
X-RS-idcamp: 177301
X-RS-idlist: 28719
MIME-Version: 1.0
X-Priority: 3
Content-Type: multipart/alternative;
        boundary="2093dac2f0086131dd5b633d4999071e"
Message-Id: <[email protected]>
Date: Wed,  5 Dec 2018 15:42:57 -0400 (-04)

--123454321123.1544038977/mailasd.dominio.com--
16860
1117
177301
28719
This is a MIME-encapsulated message.

--D6FB715140C5.1544038978/mailasd.dominio.com
Content-Type: text/plain; charset="PERL"
Content-Description: Notification


<[email protected]>: host
    otromail-com.olc.protection.outmail.com[104.47.34.33] said: 550 5.7.1
    Unfortunately, messages from [192.168.0.24] weren't sent. Please contact
    your Internet service provider since part of their network is on our block
    list (S3140). You can also refer your provider to
    htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [BY2NAM01FT048.eop-nam01.prod.protection.outmail.com] (in reply to MAIL
    FROM command)

--D6FB715140C5.1544038978/mailasd.dominio.com
Content-Type: message/delivery-status
Content-Description: Delivery report

Reporting-MTA: dns; mailasd.dominio.com
X-Postfix-Queue-ID: D6FB715140C5
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Wed,  5 Dec 2018 15:42:57 -0400 (-04)

Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.7.1
Remote-MTA: dns; otromail-com.olc.protection.outmail.com
Diagnostic-Code: smtp; 550 5.7.1 Unfortunately, messages from [192.168.0.24]
    weren't sent. Please contact your Internet service provider since part of
    their network is on our block list (S3140). You can also refer your
    provider to htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [BY2NAM01FT048.eop-nam01.prod.protection.outmail.com]

--D6FB715140C5.1544038978/mailasd.dominio.com
Content-Type: text/rfc822-headers; charset="PERL"
Content-Description: Undelivered Message Headers

Return-Path: <[email protected]>
Received: from localhost (localhost.localdomain [127.0.0.1])
        by mailasd.dominio.com (Postfix) with SMTP id D6FB715140C5
        for <[email protected]>; Wed,  5 Dec 2018 15:42:57 -0400 (-04)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailasd.dominio.com D6FB715140C5
From: Amigos Car Rental <[email protected]>
Subject: Bienvenidas Criptomonedas en Amigos Car Rental
To:Khristi Idler <[email protected]>
Sender: Amigos Car Rental <[email protected]>
Errors-To: [email protected]
Reply-To: [email protected]
List-unsubscribe: <malto:[email protected]?subject=unsubscribe>,<htps://dominio.com/aa/?accion=frmremover&A=1117&[email protected]&L=28719&C=177301>
X-RSidusuario: 16864
X-RS-idadmin: 1117
X-RS-idcamp: 177301
X-RS-idlist: 28719
MIME-Version: 1.0
X-Priority: 3
Content-Type: multipart/alternative;
        boundary="98c4e85078be8d8cf22145e10e2b8d59"
Message-Id: <[email protected]>
Date: Wed,  5 Dec 2018 15:42:57 -0400 (-04)

--D6FB715140C5.1544038978/mailasd.dominio.com--
16864
1117
177301
28719
This is a MIME-encapsulated message.

--651EC15140CF.1544038978/mailasd.dominio.com
Content-Type: text/plain; charset="PERL"
Content-Description: Notification


<[email protected]>: host
    otromail-com.olc.protection.outmail.com[104.47.33.33] said: 550 5.7.1
    Unfortunately, messages from [192.168.0.24] weren't sent. Please contact
    your Internet service provider since part of their network is on our block
    list (S3140). You can also refer your provider to
    htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [BN3NAM01FT019.eop-nam01.prod.protection.outmail.com] (in reply to MAIL
    FROM command)

--651EC15140CF.1544038978/mailasd.dominio.com
Content-Type: message/delivery-status
Content-Description: Delivery report

Reporting-MTA: dns; mailasd.dominio.com
X-Postfix-Queue-ID: 651EC15140CF
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Wed,  5 Dec 2018 15:42:58 -0400 (-04)

Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.7.1
Remote-MTA: dns; otromail-com.olc.protection.outmail.com
Diagnostic-Code: smtp; 550 5.7.1 Unfortunately, messages from [192.168.0.24]
    weren't sent. Please contact your Internet service provider since part of
    their network is on our block list (S3140). You can also refer your
    provider to htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [BN3NAM01FT019.eop-nam01.prod.protection.outmail.com]

--651EC15140CF.1544038978/mailasd.dominio.com
Content-Type: text/rfc822-headers; charset="PERL"
Content-Description: Undelivered Message Headers

Return-Path: <[email protected]>
Received: from localhost (localhost.localdomain [127.0.0.1])
        by mailasd.dominio.com (Postfix) with SMTP id 651EC15140CF
        for <[email protected]>; Wed,  5 Dec 2018 15:42:58 -0400 (-04)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailasd.dominio.com 651EC15140CF
From: Amigos Car Rental <[email protected]>
Subject: Bienvenidas Criptomonedas en Amigos Car Rental
To:Ruben Bastardo <[email protected]>
Sender: Amigos Car Rental <[email protected]>
Errors-To: [email protected]
Reply-To: [email protected]
List-unsubscribe: <malto:[email protected]?subject=unsubscribe>,<htps://dominio.com/aa/?accion=frmremover&A=1117&[email protected]&L=28719&C=177301>
X-RSidusuario: 16869
X-RS-idadmin: 1117
X-RS-idcamp: 177301
X-RS-idlist: 28719
MIME-Version: 1.0
X-Priority: 3
Content-Type: multipart/alternative;
        boundary="548fffa1ca8ef39ac51eb12b43939e9b"
Message-Id: <[email protected]>
Date: Wed,  5 Dec 2018 15:42:58 -0400 (-04)

--651EC15140CF.1544038978/mailasd.dominio.com--
16869
1117
177301
28719
This is a MIME-encapsulated message.

--406A515140CC.1544038978/mailasd.dominio.com
Content-Type: text/plain; charset="PERL"
Content-Description: Notification


<[email protected]>: host
    otromail-com.olc.protection.outmail.com[104.47.34.33] said: 550 5.7.1
    Unfortunately, messages from [192.168.0.24] weren't sent. Please contact
    your Internet service provider since part of their network is on our block
    list (S3140). You can also refer your provider to
    htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [BY2NAM01FT040.eop-nam01.prod.protection.outmail.com] (in reply to MAIL
    FROM command)

--406A515140CC.1544038978/mailasd.dominio.com
Content-Type: message/delivery-status
Content-Description: Delivery report

Reporting-MTA: dns; mailasd.dominio.com
X-Postfix-Queue-ID: 406A515140CC
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Wed,  5 Dec 2018 15:42:58 -0400 (-04)

Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.7.1
Remote-MTA: dns; otromail-com.olc.protection.outmail.com
Diagnostic-Code: smtp; 550 5.7.1 Unfortunately, messages from [192.168.0.24]
    weren't sent. Please contact your Internet service provider since part of
    their network is on our block list (S3140). You can also refer your
    provider to htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [BY2NAM01FT040.eop-nam01.prod.protection.outmail.com]

--406A515140CC.1544038978/mailasd.dominio.com
Content-Type: text/rfc822-headers; charset="PERL"
Content-Description: Undelivered Message Headers

Return-Path: <[email protected]>
Received: from localhost (localhost.localdomain [127.0.0.1])
        by mailasd.dominio.com (Postfix) with SMTP id 406A515140CC
        for <[email protected]>; Wed,  5 Dec 2018 15:42:58 -0400 (-04)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailasd.dominio.com 406A515140CC
From: Amigos Car Rental <[email protected]>
Subject: Bienvenidas Criptomonedas en Amigos Car Rental
To:Rafael Angarita <[email protected]>
Sender: Amigos Car Rental <[email protected]>
Errors-To: [email protected]
Reply-To: [email protected]
List-unsubscribe: <malto:[email protected]?subject=unsubscribe>,<htps://dominio.com/aa/?accion=frmremover&A=1117&[email protected]&L=28719&C=177301>
X-RSidusuario: 16868
X-RS-idadmin: 1117
X-RS-idcamp: 177301
X-RS-idlist: 28719
MIME-Version: 1.0
X-Priority: 3
Content-Type: multipart/alternative;
        boundary="0bb51a09ec3e4c9f2fb017ee99235197"
Message-Id: <[email protected]>
Date: Wed,  5 Dec 2018 15:42:58 -0400 (-04)

--406A515140CC.1544038978/mailasd.dominio.com--
16868
1117
177301
28719
This is a MIME-encapsulated message.

--F217215140CE.1544038979/mailasd.dominio.com
Content-Type: text/plain; charset="PERL"
Content-Description: Notification


<[email protected]>: host
    multinacional-com-ve.mail.protection.outmail.com[104.47.42.36] said: 550
    5.7.606 Access denied, banned sending IP [192.168.0.24]. To request removal
    from this list please visit htps://sender.office.com/ and follow the
    directions. For more information please go to
    htp://go.microsoft.com/fwlink/?LinkID=526655 (AS16012609) (in reply to
    RCPT TO command)

--F217215140CE.1544038979/mailasd.dominio.com
Content-Type: message/delivery-status
Content-Description: Delivery report

Reporting-MTA: dns; mailasd.dominio.com
X-Postfix-Queue-ID: F217215140CE
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Wed,  5 Dec 2018 15:42:56 -0400 (-04)

Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.7.606
Remote-MTA: dns; multinacional-com-ve.mail.protection.outmail.com
Diagnostic-Code: smtp; 550 5.7.606 Access denied, banned sending IP
    [192.168.0.24]. To request removal from this list please visit
    htps://sender.office.com/ and follow the directions. For more information
    please go to  htp://go.microsoft.com/fwlink/?LinkID=526655 (AS16012609)

--F217215140CE.1544038979/mailasd.dominio.com
Content-Type: text/rfc822-headers; charset="PERL"
Content-Description: Undelivered Message Headers

Return-Path: <[email protected]>
Received: from localhost (localhost.localdomain [127.0.0.1])
        by mailasd.dominio.com (Postfix) with SMTP id F217215140CE
        for <[email protected]>; Wed,  5 Dec 2018 15:42:56 -0400 (-04)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailasd.dominio.com F217215140CE
From: Amigos Car Rental <[email protected]>
Subject: Bienvenidas Criptomonedas en Amigos Car Rental
To:Jesus Marin <[email protected]>
Sender: Amigos Car Rental <[email protected]>
Errors-To: [email protected]
Reply-To: [email protected]
List-unsubscribe: <malto:[email protected]?subject=unsubscribe>,<htps://dominio.com/aa/?accion=frmremover&A=1117&[email protected]&L=28719&C=177301>
X-RSidusuario: 16859
X-RS-idadmin: 1117
X-RS-idcamp: 177301
X-RS-idlist: 28719
MIME-Version: 1.0
X-Priority: 3
Content-Type: multipart/alternative;
        boundary="2c97fbbaf69061bb4f0ff6d028fdd8f4"
Message-Id: <[email protected]>
Date: Wed,  5 Dec 2018 15:42:56 -0400 (-04)

--F217215140CE.1544038979/mailasd.dominio.com--si cargo smptcodeNo hay 550
16859
1117
177301
28719
This is a MIME-encapsulated message.

--2BF6915140CA.1544038979/mailasd.dominio.com
Content-Type: text/plain; charset="PERL"
Content-Description: Notification


<[email protected]>: host
    otromail-com.olc.protection.outmail.com[104.47.32.33] said: 550 5.7.1
    Unfortunately, messages from [192.168.0.24] weren't sent. Please contact
    your Internet service provider since part of their network is on our block
    list (S3140). You can also refer your provider to
    htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [SN1NAM01FT043.eop-nam01.prod.protection.outmail.com] (in reply to MAIL
    FROM command)

--2BF6915140CA.1544038979/mailasd.dominio.com
Content-Type: message/delivery-status
Content-Description: Delivery report

Reporting-MTA: dns; mailasd.dominio.com
X-Postfix-Queue-ID: 2BF6915140CA
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Wed,  5 Dec 2018 15:42:59 -0400 (-04)

Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.7.1
Remote-MTA: dns; otromail-com.olc.protection.outmail.com
Diagnostic-Code: smtp; 550 5.7.1 Unfortunately, messages from [192.168.0.24]
    weren't sent. Please contact your Internet service provider since part of
    their network is on our block list (S3140). You can also refer your
    provider to htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [SN1NAM01FT043.eop-nam01.prod.protection.outmail.com]

--2BF6915140CA.1544038979/mailasd.dominio.com
Content-Type: text/rfc822-headers; charset="PERL"
Content-Description: Undelivered Message Headers

Return-Path: <[email protected]>
Received: from localhost (localhost.localdomain [127.0.0.1])
        by mailasd.dominio.com (Postfix) with SMTP id 2BF6915140CA
        for <[email protected]>; Wed,  5 Dec 2018 15:42:59 -0400 (-04)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailasd.dominio.com 2BF6915140CA
From: Amigos Car Rental <[email protected]>
Subject: Bienvenidas Criptomonedas en Amigos Car Rental
To:Jairo Silva <[email protected]>
Sender: Amigos Car Rental <[email protected]>
Errors-To: [email protected]
Reply-To: [email protected]
List-unsubscribe: <malto:[email protected]?subject=unsubscribe>,<htps://dominio.com/aa/?accion=frmremover&A=1117&[email protected]&L=28719&C=177301>
X-RSidusuario: 16872
X-RS-idadmin: 1117
X-RS-idcamp: 177301
X-RS-idlist: 28719
MIME-Version: 1.0
X-Priority: 3
Content-Type: multipart/alternative;
        boundary="d24c4d3c2cf06a25ab333bb5f115862b"
Message-Id: <[email protected]>
Date: Wed,  5 Dec 2018 15:42:59 -0400 (-04)

--2BF6915140CA.1544038979/mailasd.dominio.com--
16872
1117
177301
28719
This is a MIME-encapsulated message.

--1F51215140C7.1544038978/mailasd.dominio.com
Content-Type: text/plain; charset="PERL"
Content-Description: Notification


<[email protected]>: host
    otromail-com.olc.protection.outmail.com[104.47.32.33] said: 550 5.7.1
    Unfortunately, messages from [192.168.0.24] weren't sent. Please contact
    your Internet service provider since part of their network is on our block
    list (S3140). You can also refer your provider to
    htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [SN1NAM01FT003.eop-nam01.prod.protection.outmail.com] (in reply to MAIL
    FROM command)

--1F51215140C7.1544038978/mailasd.dominio.com
Content-Type: message/delivery-status
Content-Description: Delivery report

Reporting-MTA: dns; mailasd.dominio.com
X-Postfix-Queue-ID: 1F51215140C7
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Wed,  5 Dec 2018 15:42:58 -0400 (-04)

Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.7.1
Remote-MTA: dns; otromail-com.olc.protection.outmail.com
Diagnostic-Code: smtp; 550 5.7.1 Unfortunately, messages from [192.168.0.24]
    weren't sent. Please contact your Internet service provider since part of
    their network is on our block list (S3140). You can also refer your
    provider to htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [SN1NAM01FT003.eop-nam01.prod.protection.outmail.com]

--1F51215140C7.1544038978/mailasd.dominio.com
Content-Type: text/rfc822-headers; charset="PERL"
Content-Description: Undelivered Message Headers

Return-Path: <[email protected]>
Received: from localhost (localhost.localdomain [127.0.0.1])
        by mailasd.dominio.com (Postfix) with SMTP id 1F51215140C7
        for <[email protected]>; Wed,  5 Dec 2018 15:42:58 -0400 (-04)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailasd.dominio.com 1F51215140C7
From: Amigos Car Rental <[email protected]>
Subject: Bienvenidas Criptomonedas en Amigos Car Rental
To:Nadheztka Ponce <[email protected]>
Sender: Amigos Car Rental <[email protected]>
Errors-To: [email protected]
Reply-To: [email protected]
List-unsubscribe: <malto:[email protected]?subject=unsubscribe>,<htps://dominio.com/aa/?accion=frmremover&A=1117&[email protected]&L=28719&C=177301>
X-RSidusuario: 16866
X-RS-idadmin: 1117
X-RS-idcamp: 177301
X-RS-idlist: 28719
MIME-Version: 1.0
X-Priority: 3
Content-Type: multipart/alternative;
        boundary="c4a89c76ed262bca930b5fc4c41f0914"
Message-Id: <[email protected]>
Date: Wed,  5 Dec 2018 15:42:58 -0400 (-04)

--1F51215140C7.1544038978/mailasd.dominio.com--
16866
1117
177301
28719
This is a MIME-encapsulated message.

--B654615140CC.1544038980/mailasd.dominio.com
Content-Type: text/plain; charset="PERL"
Content-Description: Notification


<[email protected]>: host
    otromail-com.olc.protection.outmail.com[104.47.8.33] said: 550 5.7.1
    Unfortunately, messages from [192.168.0.24] weren't sent. Please contact
    your Internet service provider since part of their network is on our block
    list (S3140). You can also refer your provider to
    htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [AM5EUR03FT032.eop-EUR03.prod.protection.outmail.com] (in reply to MAIL
    FROM command)

--B654615140CC.1544038980/mailasd.dominio.com
Content-Type: message/delivery-status
Content-Description: Delivery report

Reporting-MTA: dns; mailasd.dominio.com
X-Postfix-Queue-ID: B654615140CC
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Wed,  5 Dec 2018 15:42:59 -0400 (-04)

Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.7.1
Remote-MTA: dns; otromail-com.olc.protection.outmail.com
Diagnostic-Code: smtp; 550 5.7.1 Unfortunately, messages from [192.168.0.24]
    weren't sent. Please contact your Internet service provider since part of
    their network is on our block list (S3140). You can also refer your
    provider to htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [AM5EUR03FT032.eop-EUR03.prod.protection.outmail.com]

--B654615140CC.1544038980/mailasd.dominio.com
Content-Type: text/rfc822-headers; charset="PERL"
Content-Description: Undelivered Message Headers

Return-Path: <[email protected]>
Received: from localhost (localhost.localdomain [127.0.0.1])
        by mailasd.dominio.com (Postfix) with SMTP id B654615140CC
        for <[email protected]>; Wed,  5 Dec 2018 15:42:59 -0400 (-04)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailasd.dominio.com B654615140CC
From: Amigos Car Rental <[email protected]>
Subject: Bienvenidas Criptomonedas en Amigos Car Rental
To:Gabriela Villalobos <[email protected]>
Sender: Amigos Car Rental <[email protected]>
Errors-To: [email protected]
Reply-To: [email protected]
List-unsubscribe: <malto:[email protected]?subject=unsubscribe>,<htps://dominio.com/aa/?accion=frmremover&A=1117&[email protected]&L=28719&C=177301>
X-RSidusuario: 16876
X-RS-idadmin: 1117
X-RS-idcamp: 177301
X-RS-idlist: 28719
MIME-Version: 1.0
X-Priority: 3
Content-Type: multipart/alternative;
        boundary="38471aeaf3fc47abdcb679ed374f1fcc"
Message-Id: <[email protected]>
Date: Wed,  5 Dec 2018 15:42:59 -0400 (-04)

--B654615140CC.1544038980/mailasd.dominio.com--
16876
1117
177301
28719
This is a MIME-encapsulated message.

--E3BD415140C7.1544038980/mailasd.dominio.com
Content-Type: text/plain; charset="PERL"
Content-Description: Notification


<[email protected]>: host
    otromail-com.olc.protection.outmail.com[104.47.8.33] said: 550 5.7.1
    Unfortunately, messages from [192.168.0.24] weren't sent. Please contact
    your Internet service provider since part of their network is on our block
    list (S3140). You can also refer your provider to
    htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [AM5EUR03FT014.eop-EUR03.prod.protection.outmail.com] (in reply to MAIL
    FROM command)

--E3BD415140C7.1544038980/mailasd.dominio.com
Content-Type: message/delivery-status
Content-Description: Delivery report

Reporting-MTA: dns; mailasd.dominio.com
X-Postfix-Queue-ID: E3BD415140C7
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Wed,  5 Dec 2018 15:42:59 -0400 (-04)

Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.7.1
Remote-MTA: dns; otromail-com.olc.protection.outmail.com
Diagnostic-Code: smtp; 550 5.7.1 Unfortunately, messages from [192.168.0.24]
    weren't sent. Please contact your Internet service provider since part of
    their network is on our block list (S3140). You can also refer your
    provider to htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [AM5EUR03FT014.eop-EUR03.prod.protection.outmail.com]

--E3BD415140C7.1544038980/mailasd.dominio.com
Content-Type: text/rfc822-headers; charset="PERL"
Content-Description: Undelivered Message Headers

Return-Path: <[email protected]>
Received: from localhost (localhost.localdomain [127.0.0.1])
        by mailasd.dominio.com (Postfix) with SMTP id E3BD415140C7
        for <[email protected]>; Wed,  5 Dec 2018 15:42:59 -0400 (-04)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailasd.dominio.com E3BD415140C7
From: Amigos Car Rental <[email protected]>
Subject: Bienvenidas Criptomonedas en Amigos Car Rental
To:Yanira Medina <[email protected]>
Sender: Amigos Car Rental <[email protected]>
Errors-To: [email protected]
Reply-To: [email protected]
List-unsubscribe: <malto:[email protected]?subject=unsubscribe>,<htps://dominio.com/aa/?accion=frmremover&A=1117&[email protected]&L=28719&C=177301>
X-RSidusuario: 16879
X-RS-idadmin: 1117
X-RS-idcamp: 177301
X-RS-idlist: 28719
MIME-Version: 1.0
X-Priority: 3
Content-Type: multipart/alternative;
        boundary="05bd3a2d5dc67115e249fd35c5f8498c"
Message-Id: <[email protected]>
Date: Wed,  5 Dec 2018 15:42:59 -0400 (-04)

--E3BD415140C7.1544038980/mailasd.dominio.com--
16879
1117
177301
28719
This is a MIME-encapsulated message.

--5282B15140C7.1544038979/mailasd.dominio.com
Content-Type: text/plain; charset="PERL"
Content-Description: Notification


<[email protected]>: host
    otromail-com.olc.protection.outmail.com[104.47.32.33] said: 550 5.7.1
    Unfortunately, messages from [192.168.0.24] weren't sent. Please contact
    your Internet service provider since part of their network is on our block
    list (S3140). You can also refer your provider to
    htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [SN1NAM01FT044.eop-nam01.prod.protection.outmail.com] (in reply to MAIL
    FROM command)

--5282B15140C7.1544038979/mailasd.dominio.com
Content-Type: message/delivery-status
Content-Description: Delivery report

Reporting-MTA: dns; mailasd.dominio.com
X-Postfix-Queue-ID: 5282B15140C7
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Wed,  5 Dec 2018 15:42:59 -0400 (-04)

Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.7.1
Remote-MTA: dns; otromail-com.olc.protection.outmail.com
Diagnostic-Code: smtp; 550 5.7.1 Unfortunately, messages from [192.168.0.24]
    weren't sent. Please contact your Internet service provider since part of
    their network is on our block list (S3140). You can also refer your
    provider to htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [SN1NAM01FT044.eop-nam01.prod.protection.outmail.com]

--5282B15140C7.1544038979/mailasd.dominio.com
Content-Type: text/rfc822-headers; charset="PERL"
Content-Description: Undelivered Message Headers

Return-Path: <[email protected]>
Received: from localhost (localhost.localdomain [127.0.0.1])
        by mailasd.dominio.com (Postfix) with SMTP id 5282B15140C7
        for <[email protected]>; Wed,  5 Dec 2018 15:42:59 -0400 (-04)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailasd.dominio.com 5282B15140C7
From: Amigos Car Rental <[email protected]>
Subject: Bienvenidas Criptomonedas en Amigos Car Rental
To:Juan Boada <[email protected]>
Sender: Amigos Car Rental <[email protected]>
Errors-To: [email protected]
Reply-To: [email protected]
List-unsubscribe: <malto:[email protected]?subject=unsubscribe>,<htps://dominio.com/aa/?accion=frmremover&A=1117&[email protected]&L=28719&C=177301>
X-RSidusuario: 16873
X-RS-idadmin: 1117
X-RS-idcamp: 177301
X-RS-idlist: 28719
MIME-Version: 1.0
X-Priority: 3
Content-Type: multipart/alternative;
        boundary="68dba39400b711a1d41c06c1b110af89"
Message-Id: <[email protected]>
Date: Wed,  5 Dec 2018 15:42:59 -0400 (-04)

--5282B15140C7.1544038979/mailasd.dominio.com--
16873
1117
177301
28719
This is a MIME-encapsulated message.

--06A1615140CA.1544038981/mailasd.dominio.com
Content-Type: text/plain; charset="PERL"
Content-Description: Notification


<[email protected]>: host
    otromail-com.olc.protection.outmail.com[104.47.9.33] said: 550 5.7.1
    Unfortunately, messages from [192.168.0.24] weren't sent. Please contact
    your Internet service provider since part of their network is on our block
    list (S3140). You can also refer your provider to
    htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [VE1EUR03FT003.eop-EUR03.prod.protection.outmail.com] (in reply to MAIL
    FROM command)

--06A1615140CA.1544038981/mailasd.dominio.com
Content-Type: message/delivery-status
Content-Description: Delivery report

Reporting-MTA: dns; mailasd.dominio.com
X-Postfix-Queue-ID: 06A1615140CA
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Wed,  5 Dec 2018 15:43:01 -0400 (-04)

Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.7.1
Remote-MTA: dns; otromail-com.olc.protection.outmail.com
Diagnostic-Code: smtp; 550 5.7.1 Unfortunately, messages from [192.168.0.24]
    weren't sent. Please contact your Internet service provider since part of
    their network is on our block list (S3140). You can also refer your
    provider to htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [VE1EUR03FT003.eop-EUR03.prod.protection.outmail.com]

--06A1615140CA.1544038981/mailasd.dominio.com
Content-Type: text/rfc822-headers; charset="PERL"
Content-Description: Undelivered Message Headers

Return-Path: <[email protected]>
Received: from localhost (localhost.localdomain [127.0.0.1])
        by mailasd.dominio.com (Postfix) with SMTP id 06A1615140CA
        for <[email protected]>; Wed,  5 Dec 2018 15:43:01 -0400 (-04)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailasd.dominio.com 06A1615140CA
From: Amigos Car Rental <[email protected]>
Subject: Bienvenidas Criptomonedas en Amigos Car Rental
To:Lusiano Candosin <[email protected]>
Sender: Amigos Car Rental <[email protected]>
Errors-To: [email protected]
Reply-To: [email protected]
List-unsubscribe: <malto:[email protected]?subject=unsubscribe>,<htps://dominio.com/aa/?accion=frmremover&A=1117&[email protected]&L=28719&C=177301>
X-RSidusuario: 16888
X-RS-idadmin: 1117
X-RS-idcamp: 177301
X-RS-idlist: 28719
MIME-Version: 1.0
X-Priority: 3
Content-Type: multipart/alternative;
        boundary="75d8a0b796be3b415d14fbf672cfbce6"
Message-Id: <[email protected]>
Date: Wed,  5 Dec 2018 15:43:01 -0400 (-04)

--06A1615140CA.1544038981/mailasd.dominio.com--
16888
1117
177301
28719
This is a MIME-encapsulated message.

--292EE15140CC.1544038981/mailasd.dominio.com
Content-Type: text/plain; charset="PERL"
Content-Description: Notification


<[email protected]>: host
    otromail-com.olc.protection.outmail.com[104.47.9.33] said: 550 5.7.1
    Unfortunately, messages from [192.168.0.24] weren't sent. Please contact
    your Internet service provider since part of their network is on our block
    list (S3140). You can also refer your provider to
    htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [VE1EUR03FT057.eop-EUR03.prod.protection.outmail.com] (in reply to MAIL
    FROM command)

--292EE15140CC.1544038981/mailasd.dominio.com
Content-Type: message/delivery-status
Content-Description: Delivery report

Reporting-MTA: dns; mailasd.dominio.com
X-Postfix-Queue-ID: 292EE15140CC
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Wed,  5 Dec 2018 15:43:01 -0400 (-04)

Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.7.1
Remote-MTA: dns; otromail-com.olc.protection.outmail.com
Diagnostic-Code: smtp; 550 5.7.1 Unfortunately, messages from [192.168.0.24]
    weren't sent. Please contact your Internet service provider since part of
    their network is on our block list (S3140). You can also refer your
    provider to htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [VE1EUR03FT057.eop-EUR03.prod.protection.outmail.com]

--292EE15140CC.1544038981/mailasd.dominio.com
Content-Type: text/rfc822-headers; charset="PERL"
Content-Description: Undelivered Message Headers

Return-Path: <[email protected]>
Received: from localhost (localhost.localdomain [127.0.0.1])
        by mailasd.dominio.com (Postfix) with SMTP id 292EE15140CC
        for <[email protected]>; Wed,  5 Dec 2018 15:43:01 -0400 (-04)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailasd.dominio.com 292EE15140CC
From: Amigos Car Rental <[email protected]>
Subject: Bienvenidas Criptomonedas en Amigos Car Rental
To:Lino De Abreu <[email protected]>
Sender: Amigos Car Rental <[email protected]>
Errors-To: [email protected]
Reply-To: [email protected]
List-unsubscribe: <malto:[email protected]?subject=unsubscribe>,<htps://dominio.com/aa/?accion=frmremover&A=1117&[email protected]&L=28719&C=177301>
X-RSidusuario: 16890
X-RS-idadmin: 1117
X-RS-idcamp: 177301
X-RS-idlist: 28719
MIME-Version: 1.0
X-Priority: 3
Content-Type: multipart/alternative;
        boundary="34ba39f040e98d1bd18c3ecc4fae9867"
Message-Id: <[email protected]>
Date: Wed,  5 Dec 2018 15:43:01 -0400 (-04)

--292EE15140CC.1544038981/mailasd.dominio.com--
16890
1117
177301
28719
This is a MIME-encapsulated message.

--9EF6915140D1.1544038982/mailasd.dominio.com
Content-Type: text/plain; charset="PERL"
Content-Description: Notification


<[email protected]>: host
    otromail-com.olc.protection.outmail.com[104.47.33.33] said: 550 5.7.1
    Unfortunately, messages from [192.168.0.24] weren't sent. Please contact
    your Internet service provider since part of their network is on our block
    list (S3140). You can also refer your provider to
    htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [BN3NAM01FT020.eop-nam01.prod.protection.outmail.com] (in reply to MAIL
    FROM command)

--9EF6915140D1.1544038982/mailasd.dominio.com
Content-Type: message/delivery-status
Content-Description: Delivery report

Reporting-MTA: dns; mailasd.dominio.com
X-Postfix-Queue-ID: 9EF6915140D1
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Wed,  5 Dec 2018 15:43:01 -0400 (-04)

Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.7.1
Remote-MTA: dns; otromail-com.olc.protection.outmail.com
Diagnostic-Code: smtp; 550 5.7.1 Unfortunately, messages from [192.168.0.24]
    weren't sent. Please contact your Internet service provider since part of
    their network is on our block list (S3140). You can also refer your
    provider to htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [BN3NAM01FT020.eop-nam01.prod.protection.outmail.com]

--9EF6915140D1.1544038982/mailasd.dominio.com
Content-Type: text/rfc822-headers; charset="PERL"
Content-Description: Undelivered Message Headers

Return-Path: <[email protected]>
Received: from localhost (localhost.localdomain [127.0.0.1])
        by mailasd.dominio.com (Postfix) with SMTP id 9EF6915140D1
        for <[email protected]>; Wed,  5 Dec 2018 15:43:01 -0400 (-04)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailasd.dominio.com 9EF6915140D1
From: Amigos Car Rental <[email protected]>
Subject: Bienvenidas Criptomonedas en Amigos Car Rental
To:Maria Calo <[email protected]>
Sender: Amigos Car Rental <[email protected]>
Errors-To: [email protected]
Reply-To: [email protected]
List-unsubscribe: <malto:[email protected]?subject=unsubscribe>,<htps://dominio.com/aa/?accion=frmremover&A=1117&[email protected]&L=28719&C=177301>
X-RSidusuario: 16894
X-RS-idadmin: 1117
X-RS-idcamp: 177301
X-RS-idlist: 28719
MIME-Version: 1.0
X-Priority: 3
Content-Type: multipart/alternative;
        boundary="1252a44bb5e93e04c54fea388df56a24"
Message-Id: <[email protected]>
Date: Wed,  5 Dec 2018 15:43:01 -0400 (-04)

--9EF6915140D1.1544038982/mailasd.dominio.com--
16894
1117
177301
28719
This is a MIME-encapsulated message.

--8344F15140CC.1544038982/mailasd.dominio.com
Content-Type: text/plain; charset="PERL"
Content-Description: Notification


<[email protected]>: host
    otromail-com.olc.protection.outmail.com[104.47.34.33] said: 550 5.7.1
    Unfortunately, messages from [192.168.0.24] weren't sent. Please contact
    your Internet service provider since part of their network is on our block
    list (S3140). You can also refer your provider to
    htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [BY2NAM01FT026.eop-nam01.prod.protection.outmail.com] (in reply to MAIL
    FROM command)

--8344F15140CC.1544038982/mailasd.dominio.com
Content-Type: message/delivery-status
Content-Description: Delivery report

Reporting-MTA: dns; mailasd.dominio.com
X-Postfix-Queue-ID: 8344F15140CC
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Wed,  5 Dec 2018 15:43:02 -0400 (-04)

Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.7.1
Remote-MTA: dns; otromail-com.olc.protection.outmail.com
Diagnostic-Code: smtp; 550 5.7.1 Unfortunately, messages from [192.168.0.24]
    weren't sent. Please contact your Internet service provider since part of
    their network is on our block list (S3140). You can also refer your
    provider to htp://mail.live.com/mail/troubleshooting.aspx#errors.
    [BY2NAM01FT026.eop-nam01.prod.protection.outmail.com]

--8344F15140CC.1544038982/mailasd.dominio.com
Content-Type: text/rfc822-headers; charset="PERL"
Content-Description: Undelivered Message Headers

Return-Path: <[email protected]>
Received: from localhost (localhost.localdomain [127.0.0.1])
        by mailasd.dominio.com (Postfix) with SMTP id 8344F15140CC
        for <[email protected]>; Wed,  5 Dec 2018 15:43:02 -0400 (-04)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailasd.dominio.com 8344F15140CC
From: Amigos Car Rental <[email protected]>
Subject: Bienvenidas Criptomonedas en Amigos Car Rental
To:Ivan Rodriguez <[email protected]>
Sender: Amigos Car Rental <[email protected]>
Errors-To: [email protected]
Reply-To: [email protected]
List-unsubscribe: <malto:[email protected]?subject=unsubscribe>,<htps://dominio.com/aa/?accion=frmremover&A=1117&[email protected]&L=28719&C=177301>
X-RSidusuario: 16903
X-RS-idadmin: 1117
X-RS-idcamp: 177301
X-RS-idlist: 28719
MIME-Version: 1.0
X-Priority: 3
Content-Type: multipart/alternative;
        boundary="6ab9b7d83f1b0b546f01ab00db6cf3c6"
Message-Id: <[email protected]>
Date: Wed,  5 Dec 2018 15:43:02 -0400 (-04)

--8344F15140CC.1544038982/mailasd.dominio.com--si cargo smptcodeNo hay 550

 
Coloreado en 0.006 segundos, usando GeSHi 1.0.8.4
Avatar de Usuario
felloz
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2018-12-10 09:11 @424

Re: Problema en codigo perl

Notapor explorer » 2018-12-12 12:29 @561

De acuerdo... modificando las URL un poco, y eligiendo la opción de "No convertir automáticamente las URL" que aparece en la pestaña Opciones debajo de la caja de edición del mensaje, me ha permitido publicar tu código.

Lo que no puedo apreciar ahora, es si se trata de un solo mensaje o de un conjunto de ellos, pegados. ¿Es uno solo?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14477
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Extracción de código de estado en una respuesta por corr

Notapor explorer » 2018-12-12 20:39 @902

¡je,je,je! La primera es la más fácil.

El patrón de búsqueda del código de estado empieza por '^' indicando que queremos que inicie la coincidencia desde la primera letra de la línea... pero... no hay NINGUNA línea que empiece de ese modo...

Sospecho que el carácter '^' sobra en el patrón.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14477
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Extracción de código de estado en una respuesta por corr

Notapor explorer » 2018-12-12 22:50 @993

He escrito una prueba, porque los patrones que estás utilizando no coinciden muy bien con lo que se muestra en el ejemplo.

Primero te pongo el código, luego te pongo el resultado, y luego te explico las diferencias que he encontrado hasta ahora.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use v5.14;
  3. use strict;
  4. use warnings;
  5. use diagnostics;
  6.  
  7. # Leer ejemplo
  8. my $body_file = 'bodydecode';
  9. my @body      = do { open my($F), $body_file; <$F> };   # leer todas las líneas
  10.  
  11. #say @body;
  12.  
  13. # Plegado del texto recortado por el formato de correo electrónico.
  14. # Las líneas que eran demasiado largas fueron repartidas por líneas sucesivas, incluyendo un espacio inicial.
  15. # Ejemplo:
  16. # Content-Type: multipart/alternative;
  17. #         boundary="2093dac2f0086131dd5b633d4999071e"
  18. #
  19. # En este trozo de código reconstruiremos las líneas originales.
  20. # Esta facilita la extracción de información más adelante.
  21. #
  22. # Además aprovechamos para quitar las líneas que estén en blanco.
  23. my @nuevo_body;
  24. my $en_cabecera = 0;
  25.  
  26. for my $linea (@body) {
  27.     next if $linea =~ /^\s*$/;          # saltar si está en blanco
  28.  
  29.     # ver si la línea comienza con el formato "palabra: algo"
  30.     if ($linea =~ /^\S+[:] ./) {
  31.         $en_cabecera = 1;
  32.     }
  33.     # ver si la línea comienza con espacio en blanco
  34.     elsif ($en_cabecera  and  $linea =~ /^\s+(.+)/) {
  35.         chomp $nuevo_body[-1];          # quitamos el retorno de carro de la línea anterior
  36.         $nuevo_body[-1] .= " $1\n";     # agregamos el resto de la línea a la línea anterior
  37.         next;                           # y vemos la siguiente línea
  38.     }
  39.     # si no coincide con estos patrones, ya no estamos en una cabecera
  40.     else {
  41.         $en_cabecera = 0;
  42.     }
  43.  
  44.     # guardamos la línea
  45.     push @nuevo_body, $linea;
  46. }
  47.  
  48. @body = @nuevo_body;
  49. #say @body;
  50.  
  51. my(
  52.     $smtpCode,
  53.     $smtpCodeDetail,
  54.     $email,
  55.     $smtpAction,
  56.     $smtpStatus,
  57.     $smtpDiagnosticCode,
  58.     $smtpRemoteMta,
  59.     $usuarioId,
  60.     $adminId,
  61.     $campanaId,
  62.     $listaId,
  63.     $ipTempFiler,
  64. );
  65.  
  66. for (my $j = 0; $j < @body; $j++) {             # recorrer todas las líneas
  67.     my $linea = $body[$j];
  68.  
  69.     #print $linea;
  70.  
  71.     # Ver si es una línea con el diagnóstico
  72.     if ( $linea =~ /^Diagnostic-Code:.*?(\d{3} \d[.]\d[.]\d)\s*(.*)/ ) {
  73.         $smtpCode = $1;
  74.         $smtpCodeDetail = (defined $2) ? $2 : "";
  75.         say "CODE ==> $smtpCode:$smtpCodeDetail";
  76.     }
  77.  
  78.     # Ver si es una línea de diagnóstico pero con código de error de buzón lleno
  79.     elsif ( $linea =~ /^Diagnostic-Code: SMTP; (.*)/ ) {
  80.         $smtpDiagnosticCode = $1;
  81.  
  82.         if (   $smtpDiagnosticCode =~ /550 SC-\d{3}/
  83.             or $smtpDiagnosticCode =~ /550 OU-\d{3}/
  84.             or $smtpDiagnosticCode =~ /550 DY-\d{3}/
  85.             or $smtpDiagnosticCode =~ /421 RP-\d{3}/
  86.         ) {
  87.                 $ipTempFiler = 1;
  88.         }
  89.         say "DIAGNOSTIC ==> $smtpDiagnosticCode";
  90.     }
  91.  
  92.     # Ver si es el destinatario
  93.     elsif ( $linea =~ /^Final-Recipient: rfc822; ([\w.-]+[@][\w-]+(?:[.][\w-]+)+)/i ) {
  94.         $email = $1;
  95.         say "EMAIL ==> $email";
  96.     }
  97.  
  98.     # Ver el resultado de la acción
  99.     elsif ( $linea =~ /^Action: (\w+)/ ) {
  100.         $smtpAction = $1;
  101.         say "ACTION ==> $smtpAction";
  102.     }
  103.  
  104.     # Ver el código de estado
  105.     elsif ( $linea =~ /^Status: (\d[.]\d[.]\d)/ ) {
  106.         $smtpStatus = $1;
  107.         say "STATUS ==> $smtpStatus";
  108.     }
  109.  
  110.     # Ver el agente de transporte de correo
  111.     elsif ( $linea =~ /^Remote-MTA: DNS; ([\w.-]+)/i ) {
  112.         $smtpRemoteMta = $1;
  113.         say "REMOTE ==> $smtpRemoteMta";
  114.     }
  115.  
  116.     # Ver los distintos campos RS
  117.     elsif ( $linea =~ /^X-RSidusuario: (\d+)/ ) {
  118.         $usuarioId = $1;
  119.         say "USUARIOID ==> $usuarioId";
  120.     }
  121.     elsif ( $linea =~ /^X-RS-idadmin: (\d+)/ ) {
  122.         $adminId = $1;
  123.         say "ADMINID ==> $adminId";
  124.     }
  125.     elsif ( $linea =~ /^X-RS-idcamp: (\d+)/ ) {
  126.         $campanaId = $1;
  127.         say "CAMPANAID ==> $campanaId";
  128.     }
  129.     elsif ( $linea =~ /^X-RS-idlist: (\d+)/ ) {
  130.         $listaId = $1;
  131.         say "LISTAID ==> $listaId";
  132.     }
  133.  
  134. }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Lo que sale, aplicando al bodydecode anterior:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
EMAIL ==> [email protected]
ACTION ==> failed
STATUS ==> 5.7.1
REMOTE ==> otromail-com.olc.protection.outmail.com
CODE ==> 550 5.7.1:Unfortunately, messages from [192.168.0.24] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3140). You can also refer your provider to htp://mail.live.com/mail/troubleshooting.aspx#errors. [SN1NAM01FT021.eop-nam01.prod.protection.outmail.com]
USUARIOID ==> 16860
ADMINID ==> 1117
CAMPANAID ==> 177301
LISTAID ==> 28719
EMAIL ==> [email protected]
ACTION ==> failed
STATUS ==> 5.7.1
REMOTE ==> otromail-com.olc.protection.outmail.com
CODE ==> 550 5.7.1:Unfortunately, messages from [192.168.0.24] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3140). You can also refer your provider to htp://mail.live.com/mail/troubleshooting.aspx#errors. [BY2NAM01FT048.eop-nam01.prod.protection.outmail.com]
USUARIOID ==> 16864
ADMINID ==> 1117
CAMPANAID ==> 177301
LISTAID ==> 28719
EMAIL ==> [email protected]
ACTION ==> failed
STATUS ==> 5.7.1
REMOTE ==> otromail-com.olc.protection.outmail.com
CODE ==> 550 5.7.1:Unfortunately, messages from [192.168.0.24] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3140). You can also refer your provider to htp://mail.live.com/mail/troubleshooting.aspx#errors. [BN3NAM01FT019.eop-nam01.prod.protection.outmail.com]
USUARIOID ==> 16869
ADMINID ==> 1117
CAMPANAID ==> 177301
LISTAID ==> 28719
EMAIL ==> [email protected]
ACTION ==> failed
STATUS ==> 5.7.1
REMOTE ==> otromail-com.olc.protection.outmail.com
CODE ==> 550 5.7.1:Unfortunately, messages from [192.168.0.24] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3140). You can also refer your provider to htp://mail.live.com/mail/troubleshooting.aspx#errors. [BY2NAM01FT040.eop-nam01.prod.protection.outmail.com]
USUARIOID ==> 16868
ADMINID ==> 1117
CAMPANAID ==> 177301
LISTAID ==> 28719
EMAIL ==> [email protected]
ACTION ==> failed
STATUS ==> 5.7.6
REMOTE ==> multinacional-com-ve.mail.protection.outmail.com
CODE ==> 550 5.7.6:06 Access denied, banned sending IP [192.168.0.24]. To request removal from this list please visit htps://sender.office.com/ and follow the directions. For more information please go to  htp://go.microsoft.com/fwlink/?LinkID=526655 (AS16012609)
USUARIOID ==> 16859
ADMINID ==> 1117
CAMPANAID ==> 177301
LISTAID ==> 28719
EMAIL ==> [email protected]
ACTION ==> failed
STATUS ==> 5.7.1
REMOTE ==> otromail-com.olc.protection.outmail.com
CODE ==> 550 5.7.1:Unfortunately, messages from [192.168.0.24] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3140). You can also refer your provider to htp://mail.live.com/mail/troubleshooting.aspx#errors. [SN1NAM01FT043.eop-nam01.prod.protection.outmail.com]
USUARIOID ==> 16872
ADMINID ==> 1117
CAMPANAID ==> 177301
LISTAID ==> 28719
EMAIL ==> [email protected]
ACTION ==> failed
STATUS ==> 5.7.1
REMOTE ==> otromail-com.olc.protection.outmail.com
CODE ==> 550 5.7.1:Unfortunately, messages from [192.168.0.24] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3140). You can also refer your provider to htp://mail.live.com/mail/troubleshooting.aspx#errors. [SN1NAM01FT003.eop-nam01.prod.protection.outmail.com]
USUARIOID ==> 16866
ADMINID ==> 1117
CAMPANAID ==> 177301
LISTAID ==> 28719
EMAIL ==> [email protected]
ACTION ==> failed
STATUS ==> 5.7.1
REMOTE ==> otromail-com.olc.protection.outmail.com
CODE ==> 550 5.7.1:Unfortunately, messages from [192.168.0.24] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3140). You can also refer your provider to htp://mail.live.com/mail/troubleshooting.aspx#errors. [AM5EUR03FT032.eop-EUR03.prod.protection.outmail.com]
USUARIOID ==> 16876
ADMINID ==> 1117
CAMPANAID ==> 177301
LISTAID ==> 28719
EMAIL ==> [email protected]
ACTION ==> failed
STATUS ==> 5.7.1
REMOTE ==> otromail-com.olc.protection.outmail.com
CODE ==> 550 5.7.1:Unfortunately, messages from [192.168.0.24] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3140). You can also refer your provider to htp://mail.live.com/mail/troubleshooting.aspx#errors. [AM5EUR03FT014.eop-EUR03.prod.protection.outmail.com]
USUARIOID ==> 16879
ADMINID ==> 1117
CAMPANAID ==> 177301
LISTAID ==> 28719
EMAIL ==> [email protected]
ACTION ==> failed
STATUS ==> 5.7.1
REMOTE ==> otromail-com.olc.protection.outmail.com
CODE ==> 550 5.7.1:Unfortunately, messages from [192.168.0.24] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3140). You can also refer your provider to htp://mail.live.com/mail/troubleshooting.aspx#errors. [SN1NAM01FT044.eop-nam01.prod.protection.outmail.com]
USUARIOID ==> 16873
ADMINID ==> 1117
CAMPANAID ==> 177301
LISTAID ==> 28719
EMAIL ==> [email protected]
ACTION ==> failed
STATUS ==> 5.7.1
REMOTE ==> otromail-com.olc.protection.outmail.com
CODE ==> 550 5.7.1:Unfortunately, messages from [192.168.0.24] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3140). You can also refer your provider to htp://mail.live.com/mail/troubleshooting.aspx#errors. [VE1EUR03FT003.eop-EUR03.prod.protection.outmail.com]
USUARIOID ==> 16888
ADMINID ==> 1117
CAMPANAID ==> 177301
LISTAID ==> 28719
EMAIL ==> [email protected]
ACTION ==> failed
STATUS ==> 5.7.1
REMOTE ==> otromail-com.olc.protection.outmail.com
CODE ==> 550 5.7.1:Unfortunately, messages from [192.168.0.24] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3140). You can also refer your provider to htp://mail.live.com/mail/troubleshooting.aspx#errors. [VE1EUR03FT057.eop-EUR03.prod.protection.outmail.com]
USUARIOID ==> 16890
ADMINID ==> 1117
CAMPANAID ==> 177301
LISTAID ==> 28719
EMAIL ==> [email protected]
ACTION ==> failed
STATUS ==> 5.7.1
REMOTE ==> otromail-com.olc.protection.outmail.com
CODE ==> 550 5.7.1:Unfortunately, messages from [192.168.0.24] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3140). You can also refer your provider to htp://mail.live.com/mail/troubleshooting.aspx#errors. [BN3NAM01FT020.eop-nam01.prod.protection.outmail.com]
USUARIOID ==> 16894
ADMINID ==> 1117
CAMPANAID ==> 177301
LISTAID ==> 28719
EMAIL ==> [email protected]
ACTION ==> failed
STATUS ==> 5.7.1
REMOTE ==> otromail-com.olc.protection.outmail.com
CODE ==> 550 5.7.1:Unfortunately, messages from [192.168.0.24] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3140). You can also refer your provider to htp://mail.live.com/mail/troubleshooting.aspx#errors. [BY2NAM01FT026.eop-nam01.prod.protection.outmail.com]
USUARIOID ==> 16903
ADMINID ==> 1117
CAMPANAID ==> 177301
LISTAID ==> 28719
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Como ves, se trata de varias cabeceras, lo que me lleva a pensar que el bodydecode anterior es un conjunto de mensajes, en lugar de ser uno solo.

Ahora te cuento las diferencias con respecto a tu código. Y después te cuento lo más grave que he visto.

Previo

Antes de procesar las líneas, hago un trabajo previo que consiste en a) quitar las líneas que están en blanco, y b) reagrupar las líneas que están partidas según el formato estándar de correo electrónico (unir las líneas consecutivas de cabecera que comienzan con espacios en blanco). Esto facilita mucho el trabajo posterior.

$smtpCode

Como ya te he comentado en un mensaje anterior, los patrones que buscan por $smtpCode y $smtpCodeDetail nunca encontrarán nada... porque no hay ninguna línea que comience de esa manera.

Por eso en mi código he quitado el ancla '^', y así captura los códigos que están en las cabeceras. Lo verás en el resultado, en las líneas CODE. He limpiado la expresión regular.

$smtpDiagnosticCode

Veo que hay un patrón que busca en esta cabecera, pero es casi lo mismo que $smtpCode y $smtpCodeDetail, solo que además busca por códigos de error específicos. He limpiado la expresión regular.

$email, $smtpAction, $smtpStatus, $smtpRemoteMta, $usuarioId, $adminId, $campanaId, $listaId

He limpiado la expresión regular.

Last-Attempt-Date

No he puesto este patrón porque no veo ninguna línea así en el ejemplo.


Y ahora el comentario sobre esta forma de interpretar el bodydecode.

Si... el bodydecode se compone de una serie de mensajes con informes de errores, Y TODOS los mensajes tienen la misma estructura, todo este procesado debería funcionar bien a partir de la línea donde se comprueba que están definidas las variables (líneas 184 y siguientes).

El problema viene si esa estructura no es la misma en todos los casos. Por ejemplo, que falte una cabecera Final-Recipient o Action. En ese caso, lo que se grabará en %devueltos es una entrada con el valor de la cabecera anterior que sí definiera las variables correspondientes.

Viendo el bodydecode de ejemplo, parece que todos los casos siguen el mismo formato, así que este caso de error no se da. Pero podría ocurrir en el futuro.

Bueno... pues después de todo este rollo... La respuesta a tu pregunta inicial es que $smtpCode nunca se inicializa, por efecto de la presencia de '^' en el patrón.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14477
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Extracción de código de estado en una respuesta por corr

Notapor felloz » 2019-05-16 11:39 @527

Muchas gracias por su respuesta, te pido disculpas por haber esperado tanto tiempo para responderte, pero lamentablemente en la empresa donde laboro somos solo 2 programadores y debemos programar en 5 lenguajes distintos y no damos abasto con tanto trabajo.

Nuevamente muchas gracias y tomaré en consideración todas tus recomendaciones. ¿Sería un abuso preguntar por un número o correo de contacto directo para, posiblemente contratar tus servicios?
Avatar de Usuario
felloz
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2018-12-10 09:11 @424


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron