Fix: Strict RFC822.SIZE == BODY[] length check discards good mail
This commit is contained in:
@@ -160,8 +160,7 @@ pub fn reconcile(
|
||||
.unwrap_or(0);
|
||||
|
||||
let mut uploader = Uploader::new(net, &ctx.conn);
|
||||
let mut taken_roles: HashSet<String> =
|
||||
targets.iter().filter_map(|t| t.role.clone()).collect();
|
||||
let mut taken_roles: HashSet<String> = targets.iter().filter_map(|t| t.role.clone()).collect();
|
||||
let interleave = ty == ObjectType::FileNode;
|
||||
for d in 0..=max_depth {
|
||||
let level: Vec<&LocalNode> = to_create
|
||||
|
||||
@@ -582,12 +582,7 @@ fn upsert_mailboxes(
|
||||
tx.execute(
|
||||
"INSERT INTO mailboxes (name, parent_id, role, sort_order, is_subscribed)
|
||||
VALUES (?1, ?2, ?3, 0, ?4)",
|
||||
params![
|
||||
folder.leaf,
|
||||
parent_local,
|
||||
role,
|
||||
folder.subscribed as i64
|
||||
],
|
||||
params![folder.leaf, parent_local, role, folder.subscribed as i64],
|
||||
)?;
|
||||
let new_id = tx.last_insert_rowid();
|
||||
db::imap_ids::insert_mailbox(&tx, source_id, &folder.name, new_id)?;
|
||||
@@ -927,12 +922,10 @@ fn insert_single_message(
|
||||
logger,
|
||||
LEVEL_DEFAULT,
|
||||
&format!(
|
||||
"folder {folder:?} uid {uid}: BODY[] {} bytes vs RFC822.SIZE {declared_size}, skipping",
|
||||
"folder {folder:?} uid {uid}: BODY[] {} bytes vs RFC822.SIZE {declared_size}, importing the fetched literal",
|
||||
body.len()
|
||||
),
|
||||
);
|
||||
counts.skipped += 1;
|
||||
return Ok(());
|
||||
}
|
||||
let translation = translate_flags(&attrs.flags, include_deleted);
|
||||
if translation.has_deleted_flag && !include_deleted {
|
||||
|
||||
Reference in New Issue
Block a user