我正在使用Net :: IMAP :: Client
代码:
my $imap = Net::IMAP::Client->new(
server => 'imap.server.com',
user => $user,
pass => $pass,
ssl => 1, # (use SSL? default no)
ssl_verify_peer => 0, # (use ca to verify server, default yes)
#ssl_ca_file => '/etc/ssl/certs/certa.pm', # (CA file used for verify server) or
# ssl_ca_path => '/etc/ssl/certs/', # (CA path used for SSL)
port => 993 # (but defaults are sane)
) or die "Could not connect to IMAP server";
$imap->login or die('Login failed: ' . $imap->last_error);
$imap->select('INBOX');
然后我尝试了:
my $status = $imap->status(INBOX);
现在我有这样的哈希:
name : INBOX
UIDNEXT : 312
MESSAGES : 298
RECENT : 0
UNSEEN : 1
UIDVALIDITY : 1420542773
现在想要获取这个看不见的电子邮件的文本。 我阅读了文档,但没有找到如何做到这一点。
非常感谢。
答案 0 :(得分:0)
我有我知道正在运行的代码。它使用不同的模块,但可以让你到达你需要去的地方?
use Mail::IMAPClient;
sub get_imap {
my ($user, $pass) = @_;
my $imap = Mail::IMAPClient->new(
'User' => $user,
'Password'=> $pass,
'Ssl' => 1 ) or die "IMAP Failure: $@";
$imap->Timeout(120);
$imap->Server('smtp.gmail.com');
$imap->connect or die "Could not connect: $@\n";
$imap->select('Inbox') or die "IMAP Select Error: $!";
return $imap;
}
sub check_msgs {
my ($imap) = @_;
my @msgs = $imap->messages or die "Could not get messages: $@\n";
MSGITR:
foreach my $msg_id (@msgs) {
print "looking at msg_id $msg_id\n";
my $string = $imap->body_string($msg_id);
my @lines = split( /[\n\r]/, $string );
print scalar @lines . " lines\n";
foreach my $line (@lines) {
...
}
}
}
(来自我的工作代码的实际代码段,用于检查邮件是否有反弹)