4
我正在嘗試從Gmail帳戶讀取郵件,並且我看到的示例無法正常工作。如何從perl連接到Gmail?
我開始用這樣的:
use Mail::IMAPClient;
use IO::Socket::SSL;
my $user = 'user\@mydomain.com';
my $pwd = 'password';
my $socket = IO::Socket::SSL->new(
PeerAddr => 'imap.gmail.com',
PeerPort => 993,
SSL_verify_mode => SSL_VERIFY_PEER,
)
or die "socket(): [email protected]";
my $client = Mail::IMAPClient->new(
Socket => $socket,
User => $user,
Password => $pwd,
)
or die "new(): [email protected]";
if ($client->IsAuthenticated()) {
print "Auth OK\n";
} else {
print "No auth\n";
}
這似乎工作,但從未進行身份驗證。根據文檔,如果提供了用戶名和密碼,Mail :: IMAPClient-> new應該調用登錄名。
我曾嘗試調用客戶端 - >登錄沒有區別。
有類似內容的幾個問題,但答案狀態下使用不同的包(郵件::郵局:: Gmail是一個,但它似乎已經過時,也不管用)
帳戶是一個谷歌應用程序帳戶,不是一個普通的Gmail帳戶。我已經爲帳戶啓用了imap訪問權限。
我也嘗試使用Net :: IMAP :: Client,都使用谷歌應用程序帳戶,並使用我的gmail帳戶與應用程序專用密碼,並獲得任何東西,但「無效的憑據」。
use Net::IMAP::Client;
my $user = 'user\@gmail.com';
my $pwd = ' app password';
my $imap = Net::IMAP::Client->new(
server => 'imap.gmail.com',
user => $user,
pass => $pwd,
ssl => 1, # (use SSL? default no)
ssl_verify_peer => 0, # (use ca to verify server, default yes)
port => 993 # (but defaults are sane)
) or die "Could not connect to IMAP server: $_";
$imap->login or
die('Login failed: ' . $imap->last_error);
試圖連接到Gmail的imap時,有什麼我想念嗎?
問我現在多麼愚蠢:) – chris
多麼愚蠢的喲......?沒關係,我們都做了一次或三次。 – mob