2013-03-15 2 views
0

나는 ActiveState의 펄 5.10.0과 윈도우 XP SP3를 사용하고, 나는이 기능을 작성했습니다 - CPAN의 순 :: POP3에서 편집/촬영 - POP3를 통해 Gmail을 읽을 시도 :Windows XP에서 ActivePerl 5.10을 사용하여 POP3를 통해 Gmail을 읽는 방법은 무엇입니까?

my $pop = Net::POP3->new('pop.gmail.com', 
          Timeout => 60, 
          Port => 995, 
          Debug => 1) || die "$!"; 
    my $num = $pop->login('[email protected]', '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) 

타임 아웃이 발생하기 전에 인터넷 :: 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 

나는 또한를 사용하여 시도; Windows XP에서는 CPAN과 PPM 모두와 그 의존성 (IO::SOCKET::SSL 등)을 설치하지 않기 때문에 기쁨이 없습니다.

내 코드에 문제가 있거나 Windows XP에서 ActivePerl 5.10.0을 사용하여 POP3를 통해 Gmail을 읽는 방법에 대한 아이디어가 있습니까?

에서 Gmail에 따르면, 표준 구성 지침은 다음과 같습니다

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

"잘못된 파일 설명자"는'$! '에 대한 공통적 인 값이며'$!'는 의미가있는 것으로 보지 않습니다. 기본 클래스 중 하나는'$ @'에 메시지를 저장하므로 실제로 의미가있을 수 있습니다. – ikegami

+0

즉, SSL 사용이 필요하기 때문에 Net :: POP3의 사용은 효과가 없을 것입니다. – ikegami

+0

Re : SSL : Net :: POP3 :: SSLWrapper도 시도해 보았지만 Mail :: POP3Client & 등처럼 설치되지 않았습니다 (cpan도 ppm도 안됨). – Scavokovich

답변

0

당신은 Gmail에 액세스 할 수있는 SSL을 사용해야합니다. 즉 Perl 모듈 IO::Socket::SSL을 설치해야합니다. 그러나 이것은 매우 간단합니다. ActiveState는 훌륭한 cpan 클라이언트와 엄청난 양의 바이너리 'PPM'패키지를 제공합니다. Perl을 5.14 또는 5.16로 업그레이드하거나 이전 perls을 지원하는 데 필요한 계약을해야합니다.

Strawberry Perl을 사용할 수도 있습니다. 그것은 똑같이 좋은 cpan 클라이언트 + 빌드 도구를 가지고 있습니다.