2010-03-02 6 views
3

this 모듈을 설치하여 Gmail받은 편지함에서 액세스하고 제어 할 수 있습니다. 그러나 작은 Perl 스크립트를 통해 연결하고 기능을 테스트하려고하면이 오류 메시지가 나타납니다.Perl을 사용하여 Gmail에 인증하는 방법은 무엇입니까?

Error: Could not login with those credentials - could not find final URL 
    Additionally, HTTP error: 200 OK 

이것은 Gmail.pm 모듈에 내장 된 오류입니다.

문제의 URL ()을 핑 (ping)하여 문제가 URL을 찾지 못했다고 생각합니다. 또한, 수동으로 시도했기 때문에 자격 증명이 정확하고 해당 URL에서 작동한다는 것을 알고 있습니다.

나는 테스트를 위해 this 스크립트를 사용하고 있습니다. 나는 적절한 장소에서 나의 신임장을 제공했다.


동일한 유형의 오류가있는 this 모듈도 설치했습니다.

차단 이유가 무엇인지 알기 원하십니까? 당신도 보통 POP3 또는 IMAP을 통해 Gmail에 액세스 할 수없는 경우

+8

유통은 2006 년부터 업데이트되지 않았 음을 다음 코드를 사용할 수있는 다음과 같은 모듈을 시도; 그 때 GMail이 많이 바뀌 었습니다. 왜 IMAP을 사용하지 않는가? – friedo

+0

2006 년 데이트를 보지 못했습니다 .... 알려 주셔서 고마워요 .... IMAP 모듈을 어디에서 찾을 수 있습니까? 또는 심지어 하나 필요합니까 – CheeseConQueso

+0

메신저 너무 액세스 및 이메일 상자를 파싱 내 마지막 질문 게시판에 의해 알게 될 수도 있습니다 좋아하지 않아 – CheeseConQueso

답변

12

사용 Mail::IMAPClient과 같습니다. Mail :: IMAPClient를 통해 SSL 인증을 통과 시키려면 Net :: SSLeay에서 IO :: Socket :: SSL을 설치해야합니다. 그렇다면 매력처럼 작동합니다. 당신이 할 수있는

#!/usr/bin/env perl 
use strict; use warnings; 
use Mail::IMAPClient; 

# Connect to IMAP server 
my $client = Mail::IMAPClient->new(
    Server => 'imap.gmail.com', 
    User  => 'yourusername', 
    Password => 'yourp4a55w0r&', 
    Port  => 993, 
    Ssl  => 1, 
) 
    or die "Cannot connect through IMAPClient: $!"; 

# List folders on remote server (see if all is ok) 
if ($client->IsAuthenticated()) { 
    print "Folders:\n"; 
    print "- ", $_, "\n" for @{ $client->folders() }; 
}; 

# Say so long 
$client->logout(); 
+0

이 저에게 연결되었습니다 .... 감사합니다 .... 지금은 메시지를 구문 분석 할 방법을 – CheeseConQueso

+0

에 대한 모듈을 찾아 보시겠습니까? – CheeseConQueso

+0

nvm ...나는 그것을 얻었다 – CheeseConQueso

2

나는 성공적으로 당신은 프로그래밍이 아닌 구성 문제가, 메일 :: POP3Client

+0

감사합니다. .. 연결되는 것 같습니다 (오류 메시지 없음) cpan에 나열된 첫 번째 예제 코드에 따라 아무 것도 출력하지 않습니다 – CheeseConQueso

+0

gmail 계정에서 POP3 액세스를 활성화 했습니까? PROTIP :받은 편지함의 상태를 변경하지 않으려면 uid에 'recent'태그를 사용하십시오. http://mail.google.com/support/bin/answer.py?hl=ko&answer= 47948 – coffeepac

+0

예. 활성화되었습니다. – CheeseConQueso

2

를 사용하여 Gmail 계정 (응용 프로그램이 정확하게 계정 구글)에 액세스하고 문제.

나는 여기에 설명 된 구성 정보를 사용, Gmail을 (동일한 인터페이스를 사용하여 실제로 Google 애플리케이션)에서 내 메일을 가져 오기 : (!이 대답은하지만 훨씬 더 적절한 Super User입니다) http://download.gna.org/hpr/fetchmail/FAQ/gmail-pop-howto.html

0

Mail::Webmail::Gmail 
+0

이것은 그가 한 일입니다. 그러나 모듈은 아마도 구식 일 것입니다. –

0

당신은 또한

use warnings; 
use strict; 
use Mail::POP3Client; 
use IO::Socket::SSL; 
use CGI qw(:standard); 
my $cgi = new CGI; 
my $LOG ; 
open $LOG , ">>filename" ; 
my $username = '[email protected]'; 
my $password = '*******' ; 
chomp($password); 
my $mailhost = 'pop.gmail.com'; 
my $port  = '995'; 

$cgi->header(); 

my $pop = new Mail::POP3Client(
USER  => $username, 
PASSWORD => $password, 
HOST  => $mailhost, 
PORT  => $port, 
USESSL => 'true', 
DEBUG  => 0, 
); 
if (($pop->Count()) < 1) { 
exit; 
} 

print $pop->Count() . " messages found!:$!\n"; 

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

$pop->BodyToFile($LOG,$i); 

} 

$pop->Close(); 

exit; 
관련 문제