Issue Description
vandelay import imap skips every message on OVH — Exchange’s RFC822.SIZE ≠ fetched BODY, vandelay strictly skips the mismatch (coordinator.rs:923). Confirmed: 160/160 skipped
Expected Behavior
pulling in emails via Hosted Exchange imap import
Actual Behavior
Notable pattern: BODY consistently ~⅓ of RFC822.SIZE (6298 vs 19189) — yet our own imaplib BODY.PEEK fetch gets the full message (proven: import succeeded). So the data is intact/fetchable; vandelay discards it.
Reproduction Steps
- A Microsoft Exchange mailbox with real messages (here: OVH Hosted Exchange SE, ex5.mail.ovh.net:993 IMAPS, basic auth).
- vandelay 1.0.4.
- Run — fails even at minimal concurrency:
VANDELAY_PASSWORD=… vandelay import imap
–url imaps://ex5.mail.ovh.net:993 --auth-basic
–imap-connections 1 --threads 1 --fetch-batch 1
out.sqlite - Observe: every UID logs
folder “INBOX” uid 13: BODY 6298 bytes vs RFC822.SIZE 19189, skipping - vandelay inspect out.sqlite → email 0, blobs 0 (silent total loss; exit looks OK).
- Contrast (proves data is intact): fetch the same UIDs with plain imaplib BODY.PEEK → returns the full RFC822 message; vandelay import maildir on those imports 100%.
Relevant Log Output
folder “INBOX” uid 13: BODY 6298 bytes vs RFC822.SIZE 19189, skipping
folder “INBOX” uid 20: BODY 8803 bytes vs RFC822.SIZE 23371, skipping
folder “INBOX” uid 21: BODY 6707 bytes vs RFC822.SIZE 18705, skipping
folder “Deleted Items” uid 1023: BODY 7776 bytes vs RFC822.SIZE 30926, skipping
folder “Deleted Items” uid 1024: BODY 7703 bytes vs RFC822.SIZE 25513, skipping
folder “Deleted Items” uid 1025: BODY 7620 bytes vs RFC822.SIZE 25156, skipping
Stalwart Version
v0.16.x
Installation Method
Binary (Linux)
Database Backend
FoundationDB
Blob Storage
S3-compatible
Search Engine
Internal
Directory Backend
Internal
I have reviewed the documentation and FAQ and confirm that my issue is NOT addressed there.
on
I have searched this support forum (open and closed topics) and confirm this is not a duplicate.
on
I understand that topics in this category are triaged by a bot first but a human reply will follow up. If I’d prefer a human-only reply, I’ll add the no-ai tag to my topic.
on