This commit is contained in:
Nick Bebout 2011-03-12 02:44:51 +00:00
parent 95aab825e8
commit 5f67654c6f
53 changed files with 32864 additions and 289 deletions

362
FAQ
View file

@ -1,27 +1,33 @@
#!/bin/cat
# $Id: FAQ,v 1.59 2009/04/30 02:09:09 gilles Exp gilles $
# $Id: FAQ,v 1.65 2010/02/26 01:07:01 gilles Exp gilles $
+------------------+
| FAQ for imapsync |
+------------------+
=======================================================================
Q. How to install impasync ?
Q. How to install imapsync?
R. http://www.linux-france.org/prj/imapsync/INSTALL
=======================================================================
Q. How to configure impasync ?
Q. How to configure imapsync?
R. http://www.linux-france.org/prj/imapsync/README
=======================================================================
Q. Can you give some configuration examples ?
Q. Can you give some configuration examples?
R. http://www.linux-france.org/prj/imapsync/FAQ
=======================================================================
Q. How can I have support ?
Q. How can I have commercial support?
R. Ask the imapsync author and expert: Gilles LAMIRAL
Rates per hour (2010) : 81 euros (111 USD)
=======================================================================
Q. How can I have gratis support?
R. Use the mailing-list
@ -46,7 +52,7 @@ post to this list if you want to stay private.
Thank you for your participation.
=======================================================================
Q. Where I can read IMAP RFCs ?
Q. Where I can read up on the various IMAP RFCs?
R. Here:
@ -67,12 +73,12 @@ http://www.faqs.org/rfcs/rfc4549.html
=======================================================================
Q. Where I can find old imapsync releases ?
Q. Where I can find old imapsync releases?
R. ftp://www.linux-france.org/pub/prj/imapsync/
=======================================================================
Q. How can I try imapsync with Mail::IMAPClient 3.xx perl library?
Q. How can I try imapsync with the new Mail::IMAPClient 3.xx perl library?
R. - Download latest Mail::IMAPClient 3.xx at
http://search.cpan.org/dist/Mail-IMAPClient/
@ -82,9 +88,10 @@ R. - Download latest Mail::IMAPClient 3.xx at
- Download latest imapsync at
http://lamiral.info/~gilles/imapsync/imapsync
- run imapsync with perl and -I option tailing to use Mail-IMAPClient-3.xx
and add also option --allow3xx:
perl -I./Mail-IMAPClient-3.16/lib imapsync ... --allow3xx
- run imapsync with perl and -I option tailing to use the perl
module Mail-IMAPClient-3.xx. Example:
perl -I./Mail-IMAPClient-3.23/lib imapsync ...
=======================================================================
Q. imapsync does not work with Mail::IMAPClient 3.xx
@ -104,9 +111,9 @@ R. - Download Mail::IMAPClient 2.2.9 at
=======================================================================
Q. I am interested in creating a local clone of the IMAP on a LAN
server for faster synchronisations, Email will always be delivered
to the remote server and so the synchronisation will be one way from
remote to local. How suited is ImapSync to continouous one-way
server for faster synchronisations, email will always be delivered
to the remote server and so the synchronisation will be one way - from
remote to local. How suited is imapsync for continuous one-way
synchronisation of mailboxes? Is there a better solution?
R. If messages are delivered remotely and you play locally with the
@ -130,17 +137,16 @@ R. This is the case with:
- Mutt
- Thunderbird
Eurora shows by default the time the imap server received the email.
I think it is quite a wrong behavior since the messages can
have travelled some time before the reception.
Eurora shows by default the time the imap server received the email. I
think it is quite a wrong behavior since the messages can have
travelled some time before the reception.
The sent time and date are given by the "Date:" header
and it is set most of the time by the MUA (Mail User Agent,
Mutt, Eudora, Thunderbird etc.).
The sent time and date are given by the "Date:" header and it is set
most of the time by the MUA (Mail User Agent, Mutt, Eudora,
Thunderbird etc.).
imapsync does not touch any header since the
header is used to identify the messages in
both parts.
imapsync does not touch any header since the header is used to
identify the messages in both parts.
Solutions:
a) Don't use buggy Eudora.
@ -148,6 +154,31 @@ b) Use the --syncinternaldates option and keep using Eudora :-)
c) Use the script learn/adjust_time.pl to change the internal dates
from the "Date:" header.
=======================================================================
Q. Couldn't create [INBOX.Ops/foo/bar]: NO Invalid mailbox name:
INBOX.Ops/foo/bar
Example:
sep1=/
sep2=.
imapsync revert each separator automaticaly.
a) All / character coming from host1 are converted to . (convert the separator)
b) All . character coming from host1 are converted to / (to avoid
intermediate unwanted folder creation).
Sometimes the sep1 character is not valid on host2 (character "/" usualy)
R. Try :
--regextrans2 's,/,X,g'
It'll convert / character to X
Choose X as you wish: _ or SEP or
any string (including the empty string).
=======================================================================
Q. The option --subscribe does not seem to work
@ -156,12 +187,39 @@ R. Use it with --subscribed
=======================================================================
Q. Does imapsync retain the \Answered and $Forwarded flags?
R. imapsync retains all flags except \Recent
(RFC 3501 says "This flag can not be altered by the client.")
R. It depends on the destination server.
a) If the destination server honors the "PERMAENTFLAGS \*"
directive or no PERMAENTFLAGS at all then imapsync synchronises
all flags except the flag \Recent
(RFC 3501 says "This flag can not be altered by the client.").
b) If the destination server honors the "PERMAENTFLAGS without the
special "\*" (meaning it accepts any flag) then imapsync synchronises
only the flags listed in PERMANENTFLAGS.
Some imap servers have problems with flags not beginning with
the backslash character \
=======================================================================
Q. I need to keep only a defind list of flags, how can I do?
The destination imap server complains about bad flags (Exchange).
R. For example if you want to keep only the following flags
\Seen \Answered \Flagged \Deleted \Draft
then use these magic --regexflag options (thanks to Phil):
--regexflag 's/.*?(?:(\\(?:Answered|Flagged|Deleted|Seen|Draft)\s?)|$)/defined($1)?$1:q()/eg'
Analysis is left to the reader.
This one is longer and may be use with old perl (no /e regex extension):
--regexflag 's/(.*)/$1 jrdH8u/' \
--regexflag 's/.*?(\\Seen|\\Answered|\\Flagged|\\Deleted|\\Draft|jrdH8u)/$1 /g' \
--regexflag 's/(\\Seen|\\Answered|\\Flagged|\\Deleted|\\Draft|jrdH8u) (?!(\\Seen|\\Answered|\\Flagged|\\Deleted|\\Draft|jrdH8u)).*/$1 /g' \
--regexflag 's/jrdH8u *//'
======================================================================
Q. imapsync fails with the following error:
flags from : [\Seen NonJunk]["10-Aug-2006 13:00:30 -0400"]
@ -180,7 +238,7 @@ System flags are just flags defined by an RFC instead of by users.
Conclusion, some imap server coders don't read the RFCs (so do I).
=======================================================================
Q. Flags are not well synchonized. Is it a bug ?
Q. Flags are not well synchonized. Is it a bug?
R. It happens with some servers on the first sync.
Also, it was a bug from revision 1.200 to revision 1.207
@ -188,6 +246,7 @@ Also, it was a bug from revision 1.200 to revision 1.207
Solution: run imapsync a second time. imapsync synchronizes flags
on each run unless option --fast is used.
=======================================================================
Q. imapsync hangs taking up 99.8% cpu right after start,
after printing imapd doesn't support MD5 auth.
@ -195,11 +254,11 @@ R. Try option --noauthmd5
=======================================================================
Q. Some passwords contain * and " characters. Login fails.
R. Use
R. Use a backslash to escape the characters:
imapsync --password1 \"password\"
Ii works for the star * character,
It works for the star * character,
I don't know if it works for the " character.
=======================================================================
@ -222,7 +281,7 @@ kern.maxdsiz="1024M"
Q. With huge account (many messages) when it comes to reading the
destination server it comes out this error:
"To Folder [INBOX.foobar] Not connected"
What can I do ?
What can I do?
R. May be spending too much time on the source server, the connection
timed out on the destination server.
@ -231,7 +290,7 @@ Try options :
=======================================================================
Q. imapsync failed with a "word too long" error from the imap server,
What can I do ?
What can I do?
R. Use imapsync release 1.172 or at least 1.166 with options
--split1 500 --split2 500
@ -260,7 +319,7 @@ b) Use stunnel
=======================================================================
Q: How to have an imaps server ?
Q: How to have an imaps server?
R.
a) Install one
@ -273,46 +332,43 @@ c) or use stunnel on inetd
imaps stream tcp nowait cyrus /usr/sbin/stunnel -s cyrus -p /etc/ssl/certs/imapd.pem -r localhost:imap2
=======================================================================
Q: I'm trying to use imapsync on win32 for gmail, but it requires ssl,
or at least claims to. Imapsync appears to require io-socket-ssl,
which doesn't seem to be available on win32. Are there any other options?
Q: I'm trying to use imapsync on win32 for gmail, but it requires ssl,
or at least claims to. Imapsync appears to require io-socket-ssl,
which doesn't seem to be available on win32. Are there any other
options?
R: (Q and R come as is from Bryce Walter)
I think I'm having success using cygwin perl instead of
ActiveState Perl. I wasn't able to get CPAN working and
building IO::Socket::SSL in ActiveState, but cygwin did
all right. I had to force the install of the Net::SSLeay
dependency, because it partially failed one test, but I think
it worked anyway. In order to get working in cygwin, I
installed the entire "perl" category, lynx, ncftp, and lftp
(specified as ftp program in cpan setup). I'm not sure if I
needed all those, or if cpan just kept asking because I didn't
have any installed at the time. Anyway, cpan worked, and
I installed all dependencies that imapsync complained
about until it started working.
I think I'm having success using cygwin perl instead of ActiveState
Perl. I wasn't able to get CPAN working and building IO::Socket::SSL
in ActiveState, but cygwin did all right. I had to force the install
of the Net::SSLeay dependency, because it partially failed one test,
but I think it worked anyway. In order to get working in cygwin, I
installed the entire "perl" category, lynx, ncftp, and lftp (specified
as ftp program in cpan setup). I'm not sure if I needed all those, or
if cpan just kept asking because I didn't have any installed at the
time. Anyway, cpan worked, and I installed all dependencies that
imapsync complained about until it started working.
=======================================================================
Q: Multiple copies when I run imapsync twice ore more.
R. Multiple copies of the emails on the destination
server. Some IMAP servers (Domino for example) add some
headers for each message transfered. The message is
transfered again and again each time you run imapsync. This
is bad of course. The explanation is that imapsync considers
the message is not the same since headers have changed (one
R. Multiple copies of the emails on the destination server. Some IMAP
servers (Domino for example) add some headers for each message
transfered. The message is transfered again and again each time you
run imapsync. This is bad of course. The explanation is that imapsync
considers the message is not the same since headers have changed (one
line added) and size too (the header part).
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.
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.
The way to avoid this problem is by using options --skipheader and
--skipsize, like this (avoid headers beginning whith the
string "X-"):
--skipsize, like this (avoid headers beginning whith the string "X-"):
imapsync ... --skipheader '^X-' --skipsize
@ -325,11 +381,11 @@ If you think you have too many header to avoid just use
imapsync ... --useheader 'Message-ID' --skipsize
Remark. (Trick found by Tomasz Kaczmarski)
Option --useheader 'Message-ID' asks the server
to send only header lines begining 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 behavior is to use
Option --useheader 'Message-ID' asks the server to send only header
lines begining 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 behavior is to use
--skipheader with a negative lookahead pattern :
imapsync ... --skipheader '^(?!Message-ID)' --skipsize
@ -357,14 +413,14 @@ R. Use
or maybe
--exclude '^"public\.'
In the example given the character "." is the folder separator,
you can ommit it. Just take the string as it appears on the
imapsync output line :
In the example given the character "." is the folder separator, you
can ommit it. Just take the string as it appears on the imapsync
output line :
From folders list : [INBOX] [public.dreams] [etc.]
======================================================================
Q. I want the --folder 'MyFolder' option be recurse.
Q. I want the --folder 'MyFolder' option be recursive.
R. Do not use the --folder option.
Instead, use --include '^MyFolder'
@ -377,14 +433,14 @@ R. Use
======================================================================
Q. How to migrate from uw-imap with an admin/authuser account ?
Q. How to migrate from uw-imap with an admin/authuser account?
R. Use
--user1="user*admin_user" --password1 "admin_user_password"
======================================================================
Q. How to migrate from cyrus with an admin account ?
Q. How to migrate from cyrus with an admin account?
R. Use
--authuser1 admin_user ----password1 admin_user_password \
@ -412,17 +468,17 @@ Here is an example:
--exclude '^user\.'
======================================================================
Q. Is anyway imapsync to purge destionation folder when the source
folder is deleted?
Q. Is there anyway of making imapsync purge the destination folder
when the source folder is deleted?
R. No, that's too much dangerous.
But if the source folder is empty (not deleted) and
options --delete2 --expunge2 are used then
the destination folder will be empty.
R. No, that's too dangerous.
But if the source folder is empty (not deleted) and options --delete2
--expunge2 are used then the destination folder will be empty.
======================================================================
Q. Is it possible to synchronize all messages from one server to
another whithout recreating the folder structure and the target server.
another without recreating the folder structure and the target server.
R. Yes.
1) First try (safe mode):
@ -437,15 +493,15 @@ imapsync \
3) Remove --dry
Check the imap folder tree on the target side, you should
only have one : the classical INBOX.
only have one: the classical INBOX.
4) Remove --justfolders
======================================================================
Q. I have moved from Braunschweig to Graz, so I would like to have my whole
Braunschweig mail sorted into a folder INBOX.Braunschweig of my new mail
account.
Q. I have moved from Braunschweig to Graz, so I would like to have my
whole Braunschweig mail sorted into a folder INBOX.Braunschweig of my
new mail account.
R.
1) First try (safe mode):
@ -468,30 +524,29 @@ Q. Give examples about --regextrans2
R. Examples:
0) First try with --dry --justfolders options since imapsync shows the
transformations it will do without really doing them. Then when happy
with the output remove the --dry --justfolders options.
0) First try with --dry --justfolders options since imapsync shows the
transformations it will do without really doing them. Then when
happy with the output remove the --dry --justfolders options.
1) To remove INBOX. in the name of destination folders:
--regextrans2 's/^INBOX\.(.+)/$1/'
2) To sync a complete account in a subfolder called FOO:
a) Separator is dot character "." and "INBOX" prefixes every folder
a) Seperator is dot character "." and "INBOX" prefixes every folder
--regextrans2 's/^INBOX(.*)/INBOX.FOO$1/'
Or
b) Separator is slash character "/"
b) Seperator is slash character "/"
--regextrans2 's#(.*)#FOO/$1#'
3) to substitute all characters dot "." by underscores "_"
--regextrans2 's/\./_/g'
=======================================================================
Q. I would like to move emails from InBox to a sub-folder
called , say "2005-InBox" based on the date (Like all emails
received in the Year 2005 should be moved to the folder
called "2005-InBox").
Q. I would like to move emails from InBox to a sub-folder called,
say "2005-InBox" based on the date (Like all emails received in the
Year 2005 should be moved to the folder called "2005-InBox").
R. 2 ways :
@ -499,17 +554,18 @@ a) Manually:
------------
1) You create a folder INBOX.2005-INBOX
2) Mostly every email software allow sorting by date.
In inbox, you select from 1 january to 31 december
messages with the shift key.
2) Mostly every email software allow sorting by date. In inbox, you
select from 1 january to 31 december messages with the shift key.
(in mutt, use ~d)
3) Cut/paste in INBOX.2005-INBOX
b) With imapsync:
-----------------
You have to calculate the day of year (and
add 365). For example, running it today,
Sat Mar 11 13:06:01 CET 2006:
You have to calculate the day of year (and add 365). For example,
running it today, Sat Mar 11 13:06:01 CET 2006:
imapsync ...
--host1 imap.truc.org --host2 imap.trac.org \
@ -528,9 +584,9 @@ Sat Mar 11 13:06:01 CET 2006
$ date +%j
070
Also, you must take imapsync 1.159 at least since I tested
what I just wrote above and found 2 bugs about --mindate
--maxdate options behavior.
Also, you must take imapsync 1.159 at least since I tested what I just
wrote above and found 2 bugs about --mindate --maxdate options
behavior.
=======================================================================
Q. I want to play with headers line and --regexmess but I want to leave
@ -560,7 +616,7 @@ This example just add an header line "X-Date:" based on "Date:" line.
=======================================================================
Q. My imap server does not accept a message and warns
"Invalid header". What is the problem ?
"Invalid header". What is the problem?
R. You fall in the classical mbox versus Maildir/ format
problem. May be you use a misconfigured procmail rule.
@ -573,42 +629,39 @@ From foo@yoyo.org Sat Jun 22 01:10:21 2002
Return-Path: <foo@yoyo.org>
Received: ...
Any Maidir/ configured imap server may refuse this message
since its header is invalid. The first "From " line is not
valid. It lacks a colon character ":".
To solve this problem you have several solutions a) or b):
Any Maildir/ configured imap server may refuse this message since its
header is invalid. The first "From " line is not valid. It lacks a
colon character ":". To solve this problem you have several solutions
a) Remove these first "From " line manually for each message
before using imapsync. Don't think to add a colon to this
line since you will end with two "From:" lines (just look at
the other lines)
a) Remove these first "From " line manually for each message before
using imapsync. Don't think to add a colon to this line since you
will end with two "From:" lines (just look at the other lines)
b) Run imapsync with the following options :
--regexmess 's/\AFrom \w .*\n//' --skipsize
--regexmess 's/\AFrom \w .*\n//' --skipsize
=======================================================================
Q. The contact folder isn't well copied.
How to copy the contact folder ?
How to copy the contact folder?
R. Forget the destination server (chose the same)
R. Forget the destination server (choose the same)
Change the script around line 1426
# ITSD
$new_id = $from->copy($t_fold,$f_msg);
#$new_id = $to->append_string($t_fold,$string, $flags_f, $d);
and tried a copy of the mail instead an append_string.
Because we are using the same server, we can use $from->copy
Therefore we seem to not download and upload the message and therefore
we do not have any format issues.
And now it works fine.
(Thanks to Hansjoerg.Maurer)
and tried a copy of the mail instead an append_string. Because we are
using the same server, we can use $from->copy Therefore we seem to not
download and upload the message and therefore we do not have any
format issues. And now it works fine. (Thanks to Hansjoerg.Maurer)
=======================================================================
Q. Synchronysing from XXX to Gmail
Q. Synchronising from XXX to Gmail
R. There are some details to get the special [Gmail]
sub-folders right. Here's an example of migrating an old "Sent"
folder to Gmail's structure:
R. There are some details to get the special [Gmail] sub-folders
right. Here's an example of migrating an old "Sent" folder to
Gmail's structure:
imapsync --syncinternaldates \
--host1 mail.oldhost.com \
@ -625,9 +678,9 @@ imapsync --syncinternaldates \
The same goes for the "All Mail" archive psuedo-folder.
=======================================================================
Q. Synchronysing from Gmail to XXX
Q. Synchronising from Gmail to XXX
R. Gmail needs ssl.
R. Gmail needs SSL
./imapsync \
--host1 imap.gmail.com --ssl1 \
@ -661,6 +714,7 @@ http://mark.ossdl.de/2009/02/migrating-from-exchange-2007-to-google-apps-mail/
Q. Syncing from Google Apps domain to Googlemail account
A known bug encountered with this output (Alexander is a folder name):
++++ Verifying [Alexander] -> [Alexander] ++++
+ NO msg #16 [A96Dh4AwlLVphOAW5MS/eQ:779824] in Alexander
+ Copying msg #16:779824 to folder Alexander
@ -679,9 +733,9 @@ R. Just run imapsync a time like this :
imapsync ... --folder Alexander
=======================================================================
Q. I'm migrating from WU to Cyrus, and the mail folders are
under /home/user/mail but the tool copies everything in
/home/user, how can i avoid that?
Q. I'm migrating from WU to Cyrus, and the mail folders are under
/home/user/mail but the tool copies everything in /home/user, how
can i avoid that?
R. Use
imapsync ... --include '^mail'
@ -690,12 +744,11 @@ or (better)
=======================================================================
Q. I'm migrating from WU to Cyrus, and the mail folders are
under /home/user/mail directory. When imapsync creates the
folders in the new cyrus imap server, it makes a folder
"mail" and below that folder puts all the mail folders the
user have in /home/user/mail, i would like to have all those
folders directly under INBOX.
Q. I'm migrating from WU to Cyrus, and the mail folders are under
/home/user/mail directory. When imapsync creates the folders in
the new cyrus imap server, it makes a folder "mail" and below that
folder puts all the mail folders the user have in /home/user/mail,
i would like to have all those folders directly under INBOX.
R. Use
imapsync ... --regextrans2 's/^mail/INBOX/' --dry
@ -719,30 +772,32 @@ following options:
--skipheader '^Content-Type'
- MIME separator IDs seem to change every time a mail is accessed so
this is required to stop duplicates.
this is required to stop duplicates.
--maxage 3650
- some messages just don't seem to want to transfer and produce the
perl errors I mentioned before. This prevents the errors, but the bad
messages don't transfer.
perl errors I mentioned before. This prevents the errors, but the
bad messages don't transfer.
Even though the mail migrated OK, there are a couple of gotchas with
Groupwise IMAP:
1) Some of the GW folders are not real folders and are not available to
IMAP, the main problem one being "Sent Items". I could find no way of
coping the contents of these folders. The nearest I got was to create a
"real" folder and copy/move the sent items into it, but imapsync still
didn't see the messages (I think because there is something funny about
the reported dates/sizes).
1) Some of the GW folders are not real folders and are not available
to IMAP, the main problem one being "Sent Items". I could find no way
of coping the contents of these folders. The nearest I got was to
create a "real" folder and copy/move the sent items into it, but
imapsync still didn't see the messages (I think because there is
something funny about the reported dates/sizes).
It think this problem has been rectified in GW6.5.
2) The "skipheader '^Content-Type'" directive is required to stop
duplicate messages being created. GW seems to generate this field on the
fly for messages that have MIME separators and so it's different every time.
duplicate messages being created. GW seems to generate this field on
the fly for messages that have MIME separators and so it's different
every time.
3) Version 6.0.1 of the Groupwise Internet Connector sucks. I was
getting server abends when I pushed it a bit hard! I eventually had to
getting server aborts when I pushed it a bit hard! I eventually had to
upgrade to 6.0.4 which seems to be a lot more stable.
@ -816,18 +871,19 @@ imapsync --host1 cyrus --user1 x --authuser1 x --password1 x --ssl1 \
--sep1 '/' --exclude 'user/demo/Trash' \
--regextrans2 's/^user.//' --syncinternaldates
The 'exclude user/demo/Trash' was used because there was one message
there with 8 bit headers which dbmail doesn't accept, so I had to skip
the whole folder. It would be nice to have an option to just ignore and
log unsyncable messages, but do the rest, instead of stopping.
The 'exclude user/demo/Trash' was used because there was one message
there with 8 bit headers which dbmail doesn't accept, so I had to skip
the whole folder. It would be nice to have an option to just ignore
and log unsyncable messages, but do the rest, instead of stopping.
******************
There are two other major problems:
1) dbmail doesn't accept utf8 header, while cyrus does. imapsync stops
1) dbmail doesn't accept utf8 header, while cyrus does. imapsync stops
in that case, making sync impossible
To convert the wholes messages from 8bit to 7bit, use option :
To convert the whole messages from 8bit to 7bit, use option :
--regexmess 's/[\x80-\xff]/X/g'
@ -861,7 +917,7 @@ R. See and run patches/imapsync_1.267_jari
Q. From any to Exchange2007
Several problems:
- Big messages: increse the "send- and receive-connector"
- Big messages: increase the "send- and receive-connector"
in exchange2007 to 40 MB.
R. 2 solutions