Сообщение об ошибке говорит вам, как именно с этим справиться.Некоторые IMAP-серверы неправильно вычисляют размер сообщения - в частности, многие (например, GMail) проверяют локальный размер сообщения, а затем изменяют терминаторы строки на CRLF при отправке сообщения через IMAP, что приводит к немного другому фактическому размеру, чем тот, которыйСервер сказал клиенту ожидать.По умолчанию IMAPClient выдаст ошибку, когда это произойдет, но вы можете сказать, что нет, сказав IgnoreSizeErrors => 1
при создании экземпляра.
my $imap = Mail::IMAPClient->new(
#Debug => 1,
User => 'xxxxx',
Password => 'yyyyy',
Uid => 1,
Peek => 1, # set \Seen flag
Socket => IO::Socket::SSL->new(
Proto => 'tcp',
PeerAddr => 'zzzzzzz',
PeerPort => 993,
),
# See here
IgnoreSizeErrors => 1
);