【问题标题】:perl Net::IMAP::Client how to get unseen emailsperl Net::IMAP::Client 如何获取看不见的电子邮件
【发布时间】:2015-08-19 15:29:02
【问题描述】:

我正在使用 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

现在想要获取这封未见过电子邮件的文本。 我阅读了文档,但没有找到如何做到这一点。

非常感谢。

【问题讨论】:

  • 你试过什么?你有什么问题?向我们展示您的代码。你试过阅读documentation吗?

标签: perl email imap


【解决方案1】:

我有我知道可以工作的代码。它使用不同的模块,但可能会将您带到您需要去的地方?

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) {
      ...
    }
  }
}

(我的工作代码中的实际 sn-p,它检查消息是否退回)

【讨论】:

    猜你喜欢
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 2018-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多