Duplicated headers when fetching from office365 imap

27 views
Skip to first unread message

Łukasz Kucharski

unread,
Oct 12, 2021, 9:19:49 PM10/12/21
to VMime
Hi,

I've managed to connect to microsoft office365 IMAP server and basically want to implement something like isync.

I'm doing the usual things like connecting, getting INBOX folder opening it and doing the following:

auto allMessages = root_folder->getMessages(vn::messageSet::byNumber(1, 10)); root_folder->fetchMessages(
    allMessages,
    vn::fetchAttributes::FULL_HEADER |
    vn::fetchAttributes::ENVELOPE |
    vn::fetchAttributes::FLAGS |
    vn::fetchAttributes::SIZE );
for (uint32_t i = 0; i < allMessages.size(); ++i)
{
    auto msg = allMessages[i];
    // py_integration.filter_message(msg);
    auto parsed_message = msg->getParsedMessage();
    auto data = parsed_message->generate();
    std::ofstream out_f(std::to_string(i) + ".email");
    out_f.write(data.data(), data.size());
    // mailbox_inbox_folder->addMessage(parsed_message, msg->getFlags());
}

Unfortunately the *.email files are il-formatted by adding duplicated headers (also in pats for multipart messages).
multipart_content_type_dup.png
or header duplication of a message part 
part_content_type_dup.png
in some messages also full message header is duplicated (including Received, From, To, Subject, ...) also adding extra newline making it invalid and vmine is unable to parse such message again.

Same thing happens when I'm adding message to a maildir folder 
mailbox_inbox_folder->addMessage(parsed_message, msg->getFlags());

making it basically unusable.

Do I make some mistake here (getting messages and fetching is almost exactly like in vmime book. Do getParsedMessage method have some undocumented restriction?

Do anyone have some idea what's going on or what I'm doing wrong?

I'm using vmime from git (commit edcb4b4b1f1feb5d823d2eaba6aa6dda462d0b00) on linux (if it changes anything).

Best Regards
Łukasz


Reply all
Reply to author
Forward
0 new messages