Problème de connection pop en perl

Résolu/Fermé
xave4552 Messages postés 53 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 24 février 2018 - 10 août 2010 à 12:27
xave4552 Messages postés 53 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 24 février 2018 - 11 août 2010 à 09:33
Bonjour,
Alors depuis quelque temps j'essaie d'administré une boit mail en utilisant le protocole pop3 sur le serveur hotmail et tout cela en perl.
Bon après plusieurs essai ou je n'arriver pas à me connecter, j'ai decidé de rechercher un bout de code sur le net je suis tombait la dessus:

use warnings;
   use strict;
   use Net::POP3;
   my $subject_width = 50;
   my $from_width    = 80;
   my $mailserver = 'pop3.live.com';
   my $username   = '...............@hotmail.fr';
   my $password   = '................';
   my $pop3    = Net::POP3->new($mailserver)       or die "Failed to connect to $mailserver";
   my $tot_msg = $pop3->login($username,$password) or die "Failed to authenticate $username";
   print "Connected\n";
   printf("\n   There are $tot_msg messages\n\n");
   foreach my $msg_id (1 .. $tot_msg) {
     my $header = $pop3 -> top($msg_id, 0);
     my ($subject, $from, $status) = analyze_header($header);
     my $delete = "";
     if ($subject eq 'Document') {
       $delete = 'del';
       $pop3->delete($msg_id); # not really deleted until quit is called
     }
     printf "[%3d]  %-${subject_width}s  %-${from_width}s %6s %3s\n",
        $msg_id,
        substr($subject,0,$subject_width),
        substr($from   ,0,$from_width   ),
        $status,
        $delete;
   }
   print "Quit and Delete?\n";
   my $quit = <STDIN>; chomp $quit;
   if (lc $quit eq 'y' or lc $quit eq 'yes') {
     print "quitting and deleting\n";
     $pop3 -> quit;  # deleted messages are deleted now
   }
   $pop3 -> quit;  # deleted messages are deleted now
  
  sub analyze_header {
    my $header_array_ref = shift;
    my $header = join "", @$header_array_ref;
    my ($subject) = $header =~ /Subject: (.*)/m;
    my ($from   ) = $header =~ /From: (.*)/m;
    my ($status ) = $header =~ /Status: (.*)/m;
    if (defined $status) {
      $status = "Unread" if $status eq 'O';
      $status = "Read"   if $status eq 'R';
      $status = "Read"   if $status eq 'RO';
      $status = "Ne    $status = "-";w"    if $status eq 'NEW';
      $status = "New"    if $status eq 'U';
    }
    else {
      $status = "-";
    }
    return ($subject, $from, $status);
  }


Pourtant je n'arrive toujours pas à me connecter???
Hors je me connect parfaitement avec des client comme thunderbird ou outlook sur un compte hotmail en utilisant le protocol pop3 et sans utiliser la securité ssl

Si quelqu'un à une idée je suis preneur.

A voir également:

1 réponse

xave4552 Messages postés 53 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 24 février 2018
11 août 2010 à 09:33
C'est bon j'ai trouvé.
Pour ce que cela intéresse il faut tout simplement activer le transfert en mode ssl
voila un code source beaucoup plus simple et qui fonctionne.
  #!/usr/local/bin/perl

  use Mail::POP3Client;
  $pop = new Mail::POP3Client( USER     => '........@hotmail.fr',
                               PASSWORD => '............',
                               HOST     => 'pop3.live.com',
                               USESSL   => true,
                             );

  for ($i = 1; $i <= $pop->Count(); $i++) {
    foreach ( $pop->Head( $i ) ) {
      /^(From|Subject):\s+/i and print $_, "\n";
    }
    print "\n";
  }
0