无法使用 Mail::IMAPClient 进行排序

Unable to sort using Mail::IMAPClient

昨天我尝试使用 Mail::IMAPClient 库对来自 imap 的电子邮件进行排序,执行以下操作:

my $imap = Mail::IMAPClient->new(
#my imap settings
);
#folder selection
my @messages = $imap->sort('(REVERSE ARRIVAL) UTF-8 ALL');

但是我得到了:

4 BAD Error in IMAP command UID SORT: Invalid sort list argument (0.000 + 0.000 secs). at /var/www/localhost/htdocs/user/mail.pl line 93.: /var/www/localhost/htdocs/user/mail.pl

我花了几个小时试图解决这个问题,直到找到答案。 (下)

首先我要指出我是从 this 问题中得到启发的,这个问题来自将所有内容都作为一个参数的错误想法。

正确答案是:

my @messages = $imap->sort('(REVERSE ARRIVAL)', 'UTF-8', 'ALL');

我应该将排序模式与字符集和字符集与搜索模式分开,因为它们是不同的参数。 现在我的代码可以工作了。