From: | Jonathan Wolfe <jwolfe [...] MIT.EDU> |
Subject: | empty emails after migration |
Date: | Tue, 7 Jun 2005 18:49:22 -0400 |
To: | bug-Mail-IMAPClient [...] rt.cpan.org |
IMAPClient 2.2.9 running on perl 5.8.6 on OS X 10.4 Server (darwin 8.1)
connecting to both Exchange 2000 IMAP server and Cyrus 2.2.12 IMAP
server.
I have had almost complete success migrating messages from the
Exchange store into Cyrus using the migrate command on each folder
with messages in it.. except for seemingly random blank (0-byte)
messages that appear in Cyrus after the migration. I can view the
date and time in Apple Mail, but there is no subject and seemingly no
message source at all.
Since there are times and dates, I was able to track down the
messages. At first, I thought it may have been the bare newlines
issue, but it appears that migrate uses "append_string" which takes
care of those bare newlines (too many assumptions here?). All of
them seem to be rather small messages (less than my buffer size of
64k), coming from Outlook 2003, and most are replies to a plain text
message.
I tested with a few messages and it turns out Exchange is returning
the WRONG rfc822.size value for those messages, and others (!)
resulting in some truncated messages on the destination server (this
result looks by design from the implementation of message_string).
Exchange has a registry setting that approximates size in order to
increase performance for IMAP, considering it needs to do a MAPI to
MIME conversion.. I verified that the sizes are still wrong even with
the setting disabled. Have you encountered this before at all? I
can't seem to find anything on Google about it. Is there any way to
force recomputing the size?
message_string is comparing the result of the fetch with the length
from a rfc822.size request, and returning the string only if they are
exact matches.. perhaps a flag like "strict_size" to return undef if
they don't match, otherwise just go with the result of the fetch?
Love to hear your thoughts on this.
Cheers,
-Jon