无法通过包 "Net::IMAP::Simple" 找到对象方法 "see"

can't locate object method "see" via package "Net::IMAP::Simple"

我正在尝试从服务器获取未读邮件并在获取后将它们标记为已读(已读)。我正在使用 perl 脚本和包 Net::IMAP::Simple。我正在为办公室工作编写此脚本。

下面是一些代码:

use strict;    
use warnings;
use Net::IMAP::Simple;
use Email::Simple;
use HTTP::Date;
#some code....

# Create the object
my $server = Net::IMAP::Simple->new($imap_server) or die "Can't connect to server: $imap_server ";

# Log on
my $login = $server->login($imap_user,$imap_passwd) or die "Login failed (bad username or password)";

#some code.....

# set the message as seen
$server->see($i);

# i also used $server->add_flags($i,'\Seen'); but it throws same error.

具有讽刺意味的是,这段代码在我用于测试的 Gmail 帐户上运行良好。但是当我在办公室测试它时它会抛出错误;

无法通过包 "Net::IMAP::Simple"

定位对象方法 "see"

我不知道这里有什么问题。

方法see and unsee were added in Net::IMAP::Simple version 1.1899_05

> 1.1899_05: Tue Jun 16 06:42:16 EDT 2009
>    - I started working on ticket 45953,
>    - created sub_flags() and add_flags()
>    - taught delete() to use add_flags() -- adds \Deleted
>    - providing see() and unsee() for ticket 45953
>    - I started building tests for the flag manipulation stuff and
>      put reselect stuff ... noticed a possible bug in
>      Net::IMAP::Server

您的生产系统上可能有旧版本。更新它,并在你的 Makefile.PL 或 cpanfile 或任何你用来跟踪依赖关系的文件中包含一个最低版本。