如何在Windows XP上通过POP3和ActivePerl 5.10阅读Gmail?

时间:2013-03-15 05:37:08

标签: perl email windows-xp gmail pop3

我正在使用带有ActiveState Perl 5.10.0的Windows XP SP3,我已经编写了这个功能 - 从CPAN的Net :: POP3中获取/编辑 - 试图通过POP3读取Gmail:

  my $pop = Net::POP3->new('pop.gmail.com', 
                            Timeout => 60, 
                            Port => 995, 
                            Debug => 1) || die "$!";
  my $num = $pop->login('xyz@gmail.com', 'password');
  if (!defined($num))
  {
    die "Error: couldn't sign-in to your email account.\n";
  }
  elsif ($num > 0)
  {
    warn "There are $num message(s) in your inbox.\n";
    my $msgnums = $pop->list;
    foreach my $msgnum (keys %$msgnums)
    {
      my $msg = $pop->get($msgnum);
      print @$msg;
    }
  }
  else
  {
    die "There are no messages in your inbox. (Nothing to do.)\n"
  }

  $pop->quit;

代码只是超出此错误消息:

Use of uninitialized value in numeric eq (==) at C:/Perl/lib/Net/POP3.pm line 59.
Bad file descriptor at pop3.pl line xxx (i.e., the Net::POP3->new() line)

发生超时之前Net :: POP3的调试信息是:

Net::POP3>>> Net::POP3(2.29)
Net::POP3>>>   Net::Cmd(2.29)
Net::POP3>>>     Exporter(5.62)
Net::POP3>>>   IO::Socket::INET(1.31)
Net::POP3>>>     IO::Socket(1.30_01)
Net::POP3>>>       IO::Handle(1.27)
Net::POP3=GLOB(0x20d253c): Timeout at pop3.pl line xxx

我也尝试过使用Mail::POP3Client;在Windows XP上没有任何乐趣,因为CPAN和PPM都不会安装它及其依赖项(IO::SOCKET::SSL等)。

我的代码有什么问题和/或如何通过带有ActivePerl 5.10.0的Windows XP上的POP3读取Gmail?

根据Gmail,标准配置说明是:

Incoming Mail (POP3) Server - requires SSL:  pop.gmail.com
Use SSL: Yes
Port: 995

1 个答案:

答案 0 :(得分:0)

您需要使用SSL才能访问GMail。这意味着您需要安装Perl模块IO::Socket::SSL。但这很简单。 ActiveState提供了一个很好的cpan客户端和大量的二进制“PPM”包。它确实要求您将Perl升级到5.14或5.16,或者获得支持旧perls所需的某种合同。

您也可以使用Strawberry Perl;它有一个同样好的cpan客户端+构建工具。