Ошибка IMAPClient с функцией message_string () - PullRequest
0 голосов
/ 20 февраля 2019

у вас есть идея, как решить эту проблему, которую я встретил с помощью функции message_string () библиотеки Mail :: IMAPClient, вот мой код:

     #!/usr/bin/perl -w
use strict;
use warnings;
use Mail::IMAPClient;
use IO::Socket::SSL;



 # Create the object connexion with socket SSL + LOG ON
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,
              )
);
   die "$0: connect: $@" if defined $@;


my $nm=$imap->unseen_count("INBOX") ;
# Select INBOX dossier
$imap->select("INBOX");




      my $msg = $imap->message_string('47') or die " $@\n";

получена следующая ошибка:

message_string() expected 304627 bytes but received 304718 you may need the IgnoreSizeErrors option

1 Ответ

0 голосов
/ 20 февраля 2019

Сообщение об ошибке говорит вам, как именно с этим справиться.Некоторые 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
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...