1
0
mirror of https://github.com/imapsync/imapsync.git synced 2024-11-17 00:02:29 +01:00
imapsync/FAQ.d/FAQ.Duplicates.txt

116 lines
4.5 KiB
Plaintext
Raw Normal View History

2015-08-04 03:44:40 +02:00
#!/bin/cat
2016-09-19 17:15:41 +02:00
$Id: FAQ.Duplicates.txt,v 1.9 2016/03/08 21:17:21 gilles Exp gilles $
This documentation is also at http://imapsync.lamiral.info/#doc
2015-08-04 03:44:40 +02:00
======================================================================
2016-01-22 17:52:28 +01:00
Imapsync tips about duplicated messages issues.
2015-08-04 03:44:40 +02:00
======================================================================
=======================================================================
Q. How can I remove duplicates in an lone account?
2016-09-19 17:15:41 +02:00
R. Just run imapsync on the same account with option --delete2duplicates,
ie, with host1 == host2 and user1 == user2
2015-08-04 03:44:40 +02:00
=======================================================================
Q: Multiple copies, duplicates, when I run imapsync twice ore more.
R0.
Normally and by default, imapsync doesn't generate duplicates.
So if it does generate duplicates it means a problem occurs
with message identification. It happens sometimes with IMAP
servers changing the "Message-Id" line or "Received:" in
the header part of messages.
R1.
You can use option --useuid, with it, imapsync won't use
header lines to compare messages in folders.
Keep in mind it uses a local cache.
imapsync ... --useuid
A big issue with --useuid is that it doesn't generate duplicates if
2016-09-19 17:15:41 +02:00
used from the first time but it does generate duplicates after a previous
2015-08-04 03:44:40 +02:00
run without --useuid (because it uses a different method to identify
the messages). A solution? it depends. --delete2 solves this problem
if you are permitted to use it.
R2.
Best way if you can follow it.
Multiple copies of the emails on the destination server. Some IMAP
servers (Domino for example) change some headers for each message
transferred. All messages are transferred again and again each time you
run imapsync. This is bad of course. The explanation is that imapsync
considers messages are not the same on each side, default headers used
to identify the messages have changed.
You can look at the headers found by imapsync by using the --debug
option (and search for the message on both part), Header lines from
the source server begin with a "FH:" prefix, Header lines from the
destination server begin with a "TH:" prefix. Since --debug is very
verbose I suggest to isolate a email in a specific folder in case you
want to forward me the output.
A way to avoid this problem is by using option --useheader with
a different set than the default ones used by imapsync.
2016-09-19 17:15:41 +02:00
The default set is equivalent to:
2015-08-04 03:44:40 +02:00
imapsync ... --useheader "Message-Id" --useheader "Received"
2016-09-19 17:15:41 +02:00
The problem now is that what can be used instead of Message-Id
2015-08-04 03:44:40 +02:00
and Received lines? Often standalone Message-Id works:
imapsync ... --useheader "Message-Id"
2015-12-03 18:16:32 +01:00
Once imapsync does not generate duplicates, the previous duplicates
can be deleted with option --delete2duplicates
imapsync ... --useheader "Message-Id" --delete2duplicates
2015-08-04 03:44:40 +02:00
Another good way toward a solution is to isolate two or three messages
in a BUG folder and send me the --debug output by email at
gilles.lamiral@laposte.net
imapsync ... --debug --folder BUG
I will take a close look at the log and modify imapsync to fix
2015-12-03 18:16:32 +01:00
this faulty duplicate behavior.
2015-08-04 03:44:40 +02:00
Remark. (Trick found by Tomasz Kaczmarski)
Option --useheader "Message-Id" asks the server to send only header
lines beginning with "Message-Id". Some (buggy) servers send the whole
header (all lines) instead of the "Message-Id" line. In that case, a
trick to keep the --useheader filtering behaviour is to use
--skipheader with a negative lookahead pattern:
imapsync ... --skipheader "^(?!Message-Id)"
Read it as "skip every header except Message-Id".
=======================================================================
2016-09-19 17:15:41 +02:00
Q. imapsync calculates 479 messages in a folder but only transfers 400
messages. What's happen?
R1. Unless --useuid is used, imapsync considers a header part
of a message to identify a message on both sides.
By default the header part used is lines "Message-Id:" "Message-ID:"
and "Received:" or specific lines depending on --useheader
--skipheader. Whole header can be set by --useheader ALL
Consequences:
1) Duplicate messages on host1 (identical header) are not transferred.
The result is that you can have more messages on host1 than on host2.
R2. With option --useuid imapsync doesn't use headers to identify
messages on both sides but it uses their imap uid identifier.
In that case duplicates on host1 are also transferred on host2.
=======================================================================
2015-08-04 03:44:40 +02:00