mirror of
https://github.com/imapsync/imapsync.git
synced 2025-06-10 14:44:32 +02:00
1.836
This commit is contained in:
parent
3afeea4a16
commit
8d76e44c5e
243 changed files with 57452 additions and 10330 deletions
724
FAQ
724
FAQ
|
@ -1,724 +0,0 @@
|
|||
#!/bin/cat
|
||||
# $Id: FAQ,v 1.224 2016/06/08 21:32:09 gilles Exp gilles $
|
||||
|
||||
+-------------------+
|
||||
| FAQs for imapsync |
|
||||
+-------------------+
|
||||
|
||||
http://imapsync.lamiral.info/FAQ
|
||||
http://imapsync.lamiral.info/FAQ.d/
|
||||
|
||||
Unix versus Windows syntax.
|
||||
There are several differences between Unix and Windows
|
||||
in the command line syntax.
|
||||
- Character \ versus ^
|
||||
- Character ' versus "
|
||||
|
||||
|
||||
A) \ versus ^
|
||||
|
||||
On Unix shells you can write a single command on multiple lines
|
||||
by using the escape character \ at the end of each line
|
||||
(except the last one). On Windows this character is ^
|
||||
|
||||
Unix example:
|
||||
|
||||
./imapsync \
|
||||
--host1 imap.truc.org --user1 foo --password1 secret1 \
|
||||
--host2 imap.trac.org --user2 bar --password2 secret2
|
||||
|
||||
|
||||
Windows example:
|
||||
|
||||
imapsync ^
|
||||
--host1 imap.truc.org --user1 foo --password1 secret1 ^
|
||||
--host2 imap.trac.org --user2 bar --password2 secret2
|
||||
|
||||
|
||||
Of course you can write the command on one only line without
|
||||
characters \ nor ^. I use them because the output is
|
||||
better, no truncation, pretty print. It's just sugar.
|
||||
|
||||
In this FAQ I use \ for examples. Transcript to ^ if
|
||||
you're on a Windows system.
|
||||
|
||||
B) ' versus "
|
||||
|
||||
On Windows the single quote character ' doesn't work
|
||||
like on Unix so in the examples of this FAQ the
|
||||
command containing single quotes ' will fail on Windows.
|
||||
To fix it just replace single quotes ' by double quotes "
|
||||
|
||||
Also on Windows, in examples with \$1 replace
|
||||
any \$1 by $1 (remove the \ before $).
|
||||
|
||||
=======================================================================
|
||||
Q. How to verify imapsync.exe I got is the right file bit per bit?
|
||||
|
||||
R. Use md5sum to check integrity of the file.
|
||||
Get md5sum.exe at http://etree.org/md5com.html
|
||||
|
||||
md5sum imapsync.exe
|
||||
|
||||
Then compare the checksum with the one given by the author.
|
||||
|
||||
=======================================================================
|
||||
Q. How to install imapsync?
|
||||
|
||||
R. Read the INSTALL files in the tarball also available at
|
||||
http://imapsync.lamiral.info/INSTALL
|
||||
http://imapsync.lamiral.info/INSTALL.d/
|
||||
|
||||
=======================================================================
|
||||
Q. How to configure and run imapsync?
|
||||
|
||||
R. Read the README, OPTIONS and FAQ files in the tarball also
|
||||
available at:
|
||||
http://imapsync.lamiral.info/README
|
||||
http://imapsync.lamiral.info/OPTIONS
|
||||
http://imapsync.lamiral.info/FAQ
|
||||
|
||||
=======================================================================
|
||||
Q. Can you give some configuration examples?
|
||||
|
||||
R1. Basic usage is described there:
|
||||
http://imapsync.lamiral.info/#DOC_BASIC
|
||||
|
||||
imapsync --host1 test1.lamiral.info --user1 test1 --password1 secret1 \
|
||||
--host2 test2.lamiral.info --user2 test2 --password2 secret2
|
||||
|
||||
R2. The FAQ files contains many examples for several scenarios
|
||||
http://imapsync.lamiral.info/FAQ
|
||||
|
||||
=======================================================================
|
||||
Q. How can I have commercial support?
|
||||
|
||||
R. Buy support from imapsync author and expert: Gilles LAMIRAL
|
||||
http://imapsync.lamiral.info/#buy_all
|
||||
|
||||
=======================================================================
|
||||
Q. How can I have gratis support?
|
||||
|
||||
R. Use the mailing-list
|
||||
|
||||
To write on the mailing-list, the address is:
|
||||
<imapsync@linux-france.org>
|
||||
|
||||
To subscribe, send a message to:
|
||||
<imapsync-subscribe@listes.linux-france.org>
|
||||
|
||||
To unsubscribe, send a message to:
|
||||
<imapsync-unsubscribe@listes.linux-france.org>
|
||||
|
||||
To contact the person in charge for the list:
|
||||
<imapsync-request@listes.linux-france.org>
|
||||
|
||||
The list archives may be available at:
|
||||
http://www.linux-france.org/prj/imapsync_list/
|
||||
So consider that the list is public, anyone
|
||||
can see your post. Use a pseudonym or do not
|
||||
post to this list if you want to stay private.
|
||||
|
||||
Thank you for your participation.
|
||||
|
||||
=======================================================================
|
||||
Q. Where I can find old imapsync releases?
|
||||
|
||||
R. Search the Internet.
|
||||
|
||||
=======================================================================
|
||||
Q. Where I can find free open and gratis imapsync releases?
|
||||
|
||||
R. Search the Internet.
|
||||
|
||||
Q. Is is legal to find imapsync gratis (or not) elsewhere?
|
||||
|
||||
R. Yes, the license permits it
|
||||
http://imapsync.lamiral.info/NOLIMIT
|
||||
|
||||
=======================================================================
|
||||
Q. How "Facts and figures" are known on http://imapsync.lamiral.info/
|
||||
|
||||
R. To know wether a newer imapsync exists or not imapsync does a http
|
||||
GET to http://imapsync.lamiral.info/VERSION
|
||||
Via the User-agent parameter it also send:
|
||||
|
||||
* imapsync release
|
||||
* Perl version
|
||||
* Mail::IMAPClient version
|
||||
* Operating System
|
||||
|
||||
You can remove this behavior by adding option --noreleasecheck on the
|
||||
command line (or by setting $releasecheck = 0 in the source code)
|
||||
or by using github release.
|
||||
|
||||
=======================================================================
|
||||
Q. I use --useuid which uses a cache in /tmp or --tmpdir, the hostnames
|
||||
host1 or host2 has changed but mailboxes are the same. Will imapsync
|
||||
generate duplicate messages on next runs?
|
||||
|
||||
R. Yes
|
||||
|
||||
Q. How can I fix this?
|
||||
|
||||
R. The cache path reflects exactly hostnames or ip addresses given via
|
||||
--host1 and --host2 values. So just change the directory names
|
||||
of host1 or host2. Use --dry to see if next runs will generate
|
||||
duplicates.
|
||||
By default on Unix the cache is like
|
||||
|
||||
/tmp/imapsync_cache/host1/user1/host2/user2/...
|
||||
|
||||
=======================================================================
|
||||
Q. How can I speed up transfers?
|
||||
|
||||
R. By using --useuid imapsync avoid getting messages headers and build
|
||||
a cache. On Unix a good thing is to add also --tmpdir /var/tmp
|
||||
to keep the cache since /tmp is often cleared on reboot.
|
||||
|
||||
imapsync ... --useuid
|
||||
|
||||
On Unix:
|
||||
|
||||
imapsync ... --useuid --tmpdir /var/tmp/
|
||||
|
||||
R. Add also --nofoldersizes since the default behavior is to compute
|
||||
folder sizes. Folder sizes are useless for the transfer, just
|
||||
useful to see what has to be done on each folder and guess when
|
||||
the transfer will end (ETA).
|
||||
|
||||
R. Add also --noexpungeaftereach if you use --delete.
|
||||
But be warn that an interrupted transfer can loose messages
|
||||
on host2 in a second run if you use a (silly) combination like
|
||||
|
||||
imapsync ... --delete --noexpunge --noexpungeaftereach --expunge2
|
||||
|
||||
R. Add also --nocheckmessageexists
|
||||
--nocheckmessageexists is on by default since release 1.520.
|
||||
Since transfer can be long on a huge mailbox imapsync checks
|
||||
a message exist before copying it, but it takes time and
|
||||
cpu on the host1 server.
|
||||
|
||||
|
||||
Notes about --useuid
|
||||
|
||||
Case where building the cache first is necessary (to avoid multiples transfers)
|
||||
|
||||
If you run again imapsync with --useuid on a transfer already done without
|
||||
--useuid then, to avoid messages be copied again, first run imapsync
|
||||
with --usecache but without --useuid, example scenario:
|
||||
|
||||
A] Running with the default options, I began without --useuid
|
||||
|
||||
1) First run with default options
|
||||
|
||||
imapsync ...
|
||||
|
||||
Too slow, I want to speed up!
|
||||
|
||||
2) Build the cache
|
||||
|
||||
imapsync ... --usecache
|
||||
|
||||
3) Speed up now
|
||||
|
||||
imapsync ... --useuid
|
||||
|
||||
B] I began with --useuid from the first time
|
||||
|
||||
1) First run and next runs with --useuid
|
||||
|
||||
imapsync ... --useuid
|
||||
|
||||
|
||||
Inodes number issue.
|
||||
|
||||
The cache is simple, it uses the file-system natively,
|
||||
it's just an empty file per message transfered.
|
||||
When mailboxes are huge the cache can exhaust the number of inodes
|
||||
allowed in the filesystem, that's a limitation like limitation
|
||||
size but it's less often encountered.
|
||||
|
||||
On Unix, to predict whether your tmpdir filesystem used by imapsync
|
||||
will support the whole cache, just run the command "df -i /var/tmp",
|
||||
if /var/tmp is the --tmpdir argument.
|
||||
|
||||
On windows, search and drop me a note about how to count the number
|
||||
of files allowed in the filesystem.
|
||||
It seems FAT32 supports 268 435 445 clusters.
|
||||
|
||||
Choosing the number of inodes allowed by a filesystem can be done
|
||||
at the creation of it with "mkfs -N number-of-inodes ..."
|
||||
|
||||
imapsync can predict how many messages have to be synced with the
|
||||
option --justfoldersizes (no transfer will be done)
|
||||
|
||||
imapsync ... --justfoldersizes
|
||||
|
||||
|
||||
=======================================================================
|
||||
Q. I see warning messages like the following:
|
||||
"Host1 Sent/15 size 1428 ignored (no header so we ignore this message.
|
||||
To solve this: use --addheader)".
|
||||
|
||||
What can I do to transfer those messages?
|
||||
|
||||
|
||||
R1. Like suggested inline, use --addheader option.
|
||||
Option --addheader will add an header line like
|
||||
Message-Id: <15@imapsync>
|
||||
where 15 is the message UID number on host1.
|
||||
Then imapsync will transfer the changed message on host2.
|
||||
Duplicates won't happen on next runs.
|
||||
|
||||
imapsync ... --addheader
|
||||
|
||||
R2. Other solution.
|
||||
Use --useuid then imapsync will avoid dealing with headers.
|
||||
|
||||
imapsync ... --useuid
|
||||
|
||||
=======================================================================
|
||||
Q. On Windows, with --useuid or --usecache a problem occurs with long
|
||||
nested folder names. The error message is:
|
||||
"No such file or directory; The filename or extension is too long"
|
||||
|
||||
R. This comes from a Windows limitation on pathnames.
|
||||
No more than 260 characters are allowed for pathnames.
|
||||
See more details on page
|
||||
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247.aspx#maxpath
|
||||
The workaround solution given at the previous link,
|
||||
ie using \\?\D:", does not work for imapsync.
|
||||
So this imapsync Windows bug is still pending and needs a fix using
|
||||
a different technique to cache, like a database file for example.
|
||||
|
||||
A solution to fix the issue is to use a Linux virtual host on a
|
||||
Windows box, with VirtualBox or VmWare etc. There is no bug this way,
|
||||
pathnames can be several thousands characters long.
|
||||
Better said that done but not so difficult nor expensive these days,
|
||||
VirtualBox is free and VmWare Player is free for personal or test use.
|
||||
|
||||
If you have to stick on Windows, there are two good workarounds
|
||||
to reduce the cache directory name:
|
||||
|
||||
1) Use --tmpdir "D:\\temp" or simply --tmpdir "D:" and imapsync
|
||||
will build and use the cache in the sub directory
|
||||
D:\imapsync_cache\
|
||||
|
||||
2) add two equivalent entries in the etc/hosts for host1 imap.truc.org
|
||||
and host2 imap.trac.org.
|
||||
If you map the ip of imap.truc.org just with the letter a
|
||||
and same thing for imap.trac.org then you gain characters
|
||||
|
||||
etc/hosts
|
||||
|
||||
192.168.12.1 a
|
||||
192.168.55.3 b
|
||||
|
||||
Then use:
|
||||
|
||||
imapsync --host1 a --host2 b ...
|
||||
|
||||
You can get the ip of a host with the ping command line
|
||||
C:\> ping imap.truc.org
|
||||
|
||||
Fixing the long path problem directly in imapsync is in the TODO file.
|
||||
|
||||
=======================================================================
|
||||
Q. How can I try imapsync with latest Mail::IMAPClient 3.xx perl module?
|
||||
|
||||
Three solutions at least.
|
||||
|
||||
R1 - Look at the script named "i3" in the tarball, it can be used to
|
||||
run imapsync with the included Mail-IMAPClient-3.38/ wherever you
|
||||
unpacked the imapsync tarball
|
||||
|
||||
R2 Run:
|
||||
|
||||
cpanm Mail::IMAPClient # this uses cpanminus
|
||||
|
||||
or
|
||||
|
||||
cpan -i Mail::IMAPClient
|
||||
|
||||
or
|
||||
|
||||
perl -MCPAN -e "install Mail::IMAPClient"
|
||||
|
||||
|
||||
R3 If you want to install the Perl module locally in a directory
|
||||
|
||||
- Download latest Mail::IMAPClient 3.xx at
|
||||
http://search.cpan.org/dist/Mail-IMAPClient/
|
||||
|
||||
- untar it anywhere:
|
||||
tar xzvf Mail-IMAPClient-3.xx.tar.gz
|
||||
|
||||
- Get any imapsync (latest is better).
|
||||
|
||||
- run imapsync with perl and -I option tailing to use the perl
|
||||
module Mail-IMAPClient-3.xx. Example:
|
||||
|
||||
perl -I./Mail-IMAPClient-3.38/lib ./imapsync ...
|
||||
|
||||
or if imapsync is in directory /path/
|
||||
perl -I./Mail-IMAPClient-3.38/lib /path/imapsync ...
|
||||
|
||||
|
||||
=======================================================================
|
||||
Q. How can I use imapsync with Mail::IMAPClient 2.2.9 perl module?
|
||||
|
||||
R. Mail::IMAPClient 2.2.9 is no longer supported.
|
||||
|
||||
=======================================================================
|
||||
Q. Can I use imapsync to migrate emails from pop3 server to imap server?
|
||||
|
||||
R1. No.
|
||||
You can migrate emails from pop server to imap server with pop2imap:
|
||||
http://www.linux-france.org/prj/pop2imap/
|
||||
|
||||
R2. Yes
|
||||
Many pop3 servers runs in parallel with an imap server on exactly
|
||||
the same mailboxes. They serve the same INBOX
|
||||
(imap serves INBOX and several other folders, pop3 serves only INBOX)
|
||||
So have a try with imapsync on the same host1.
|
||||
|
||||
=======================================================================
|
||||
Q. Folders are not created on host2. What happens?
|
||||
|
||||
R. Do you use IMAP or POP3 with your client software?
|
||||
It looks like you use POP3 instead of IMAP, POP3 sees only INBOX.
|
||||
|
||||
|
||||
=======================================================================
|
||||
Q. I am interested in creating a local clone of the IMAP on a LAN
|
||||
server for faster synchronizations, email will always be delivered
|
||||
to the remote server and so the synchronization will be one way - from
|
||||
remote to local. How suited is imapsync for continuous one-way
|
||||
synchronization of mailboxes? Is there a better solution?
|
||||
|
||||
R. If messages are delivered remotely and you play locally with the
|
||||
copy, in order to have fast access, then the synchronization can't
|
||||
be one way. You may change flags, you may move messages in
|
||||
different folders etc. The issue described is clearly
|
||||
two-ways sync.
|
||||
|
||||
A better tool with this scenario is offlineimap,
|
||||
designed for this issue, and faster than imapsync.
|
||||
|
||||
|
||||
=======================================================================
|
||||
Q. I need to log every output on a file named log.txt
|
||||
|
||||
R1. imapsync logs on a file by default, its name is given at the
|
||||
beginning and the end of each run. This name is unique since
|
||||
it is compound of the current date and time and user2 value.
|
||||
|
||||
R2. To change this default name, use --logfile log.txt
|
||||
|
||||
imapsync ... --logfile log.txt
|
||||
|
||||
|
||||
=======================================================================
|
||||
Q. Quantifier in {,} bigger than 32766 in regex; marked by <-- HERE in
|
||||
m/(.{ <-- HERE 1,49947})(?:,|$)/ at Mail/IMAPClient.pm line 2121.
|
||||
|
||||
R. Do not use a bigger value than 3276 with --split1 or --split2
|
||||
|
||||
=======================================================================
|
||||
Q. Couldn't create [INBOX.Ops/foo/bar]: NO Invalid mailbox name:
|
||||
INBOX.Ops/foo/bar
|
||||
|
||||
Let begin by an explanation.
|
||||
|
||||
Example:
|
||||
sep1 = /
|
||||
sep2 = .
|
||||
|
||||
imapsync reverts each separator automatically.
|
||||
|
||||
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).
|
||||
|
||||
So
|
||||
INBOX/Ops.foo.bar (Ops.foo.bar is just one folder name) will be translated to
|
||||
INBOX.Ops/foo/bar
|
||||
|
||||
Sometimes the sep1 character is not valid on host2 (character "/" usually)
|
||||
|
||||
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).
|
||||
|
||||
This issue is automatically fixed by default since imapsync
|
||||
release 1.513, use --nofixslash2 to suppress the fix.
|
||||
|
||||
=======================================================================
|
||||
Q. Is it possible to sync also the UIDL of the POP3 server?
|
||||
|
||||
R. imapsync does not POP3 but I think you mean UID in IMAP.
|
||||
See next question.
|
||||
|
||||
=======================================================================
|
||||
Q. Is it possible to sync also the UIDs of the IMAP server?
|
||||
|
||||
UIDs in IMAP are chosen and created by the servers, not by the clients,
|
||||
imapsync is a client. So UIDs cannot be synced by any imap method.
|
||||
UIDs might be synced via a rsync command on the server part.
|
||||
|
||||
=======================================================================
|
||||
Q. The option --subscribe does not seem to work
|
||||
|
||||
R1. Use it with --subscribed
|
||||
|
||||
R2. There is also the --subscribe_all option that subscribe
|
||||
to all folders on host2.
|
||||
|
||||
=======================================================================
|
||||
Q. On Unix, some passwords contain * and " characters. Login fails.
|
||||
R. Use a backslash to escape the characters:
|
||||
|
||||
imapsync ... --password1 \"password\"
|
||||
|
||||
It works for the star * character,
|
||||
I don't know if it works for the " character.
|
||||
|
||||
=======================================================================
|
||||
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?
|
||||
|
||||
R. May be spending too much time on the source server, the connection
|
||||
timed out on the destination server.
|
||||
Try options --nofoldersizes
|
||||
|
||||
======================================================================
|
||||
Q. Can Imapsync filter Spam during the sync?
|
||||
|
||||
R. No, imapsync doesn't detect Spam by itself and currently it can't
|
||||
delegate this job during its IMAP syncs. But I've seen blogs and
|
||||
Spamassassin documentation explaining solutions to apply Spamassassin
|
||||
to a imap mailbox. So you can apply one of these solutions on the host1
|
||||
source mailbox before the imapsync run or on the destination host2
|
||||
mailbox after the imapsync transfer.
|
||||
|
||||
http://www.stearns.org/doc/spamassassin-setup.current.html#isbg
|
||||
http://euer.krebsco.de/using-spamassassin-on-a-remote-imap-host.html
|
||||
https://github.com/ook/isbg
|
||||
|
||||
======================================================================
|
||||
Q. How to migrate from uw-imap with an admin/authuser account?
|
||||
|
||||
R. Use the following syntax:
|
||||
|
||||
imapsync ... --user1="loginuser*admin_user" --password1 "admin_user_password"
|
||||
|
||||
|
||||
======================================================================
|
||||
Q. How to migrate from cyrus with an admin account?
|
||||
|
||||
R. Use:
|
||||
|
||||
imapsync ... \
|
||||
--authuser1 admin_user ----password1 admin_user_password \
|
||||
--user1 foo_user --ssl1
|
||||
|
||||
Instead of --ssl1 the alternative --tls1 can be used.
|
||||
With --authuser1, the option --authmech1 PLAIN is set
|
||||
automatically, you don't have to add it.
|
||||
|
||||
PLAIN authentication is the only way to go with --authuser1 for now.
|
||||
So don't use --authmech1 SOMETHING with --authuser1 admin_user,
|
||||
it will not work.
|
||||
Same behavior with the --authuser2 option.
|
||||
|
||||
Do not forget the option --ssl1 or --tls1 since PLAIN auth is only
|
||||
supported with ssl encryption most of the time. But it can
|
||||
work without --ssl1 nor --tls1 if PLAIN is permitted in clear text
|
||||
transmissions (the normal mode).
|
||||
|
||||
Add the AdminAccount to admins line in /etc/imapd.conf
|
||||
Give AdminAccount lrswipkxtecda to the Cyrus Imap account
|
||||
being migrated from, "joe" here.
|
||||
|
||||
|
||||
Here is an example:
|
||||
imapsync \
|
||||
--host1 server1 \
|
||||
--user1 joe \
|
||||
--authuser1 AdminAccount \
|
||||
--password1 AdminAccountPassword \
|
||||
--ssl1 \
|
||||
--host2 server2 \
|
||||
--user2 joe \
|
||||
--password2 joespassonserver2 \
|
||||
--exclude "^user\."
|
||||
|
||||
======================================================================
|
||||
Q: How to migrate from Sun Java Enterprise System / Sun One / iPlanet /
|
||||
Netscape servers with an admin account?
|
||||
|
||||
R: Those imap servers don't allow the typical use of --authuser1 to use an
|
||||
administrative account. They expect the use of an IMAP command called
|
||||
proxyauth that is issued after login in as an administrative account.
|
||||
|
||||
For example, consider the administrative account 'administrator' and your
|
||||
real user 'real_user'. The IMAP sequence would be:
|
||||
|
||||
OK [CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS
|
||||
CHILDREN BINARY UNSELECT LANGUAGE STARTTLS XSENDER X-NETSCAPE XSERVERINFO
|
||||
AUTH=PLAIN] imap.server IMAP4 service (Sun Java(tm) System Messaging
|
||||
Server ...))
|
||||
1 LOGIN administrator password
|
||||
1 OK User logged in
|
||||
2 PROXYAUTH real_user
|
||||
2 OK Completed
|
||||
|
||||
In imapsync, you can achieve this by using the following options:
|
||||
|
||||
--host1 source.imap.server \
|
||||
--user1 real_user \
|
||||
--authuser1 administrator \
|
||||
--proxyauth1 \
|
||||
--passfile admin.txt
|
||||
|
||||
======================================================================
|
||||
Q. Is there anyway of making imapsync purge the destination folder
|
||||
when the source folder is deleted?
|
||||
|
||||
R. Yes, use --delete2folders
|
||||
|
||||
--delete2folders : Delete folders in host2 that are not in host1 server.
|
||||
For safety, first try it like this (it is safe):
|
||||
--delete2folders --dry --justfolders --nofoldersizes
|
||||
--delete2foldersonly <regex>: Deleted only folders matching regex.
|
||||
Example: --delete2foldersonly "/^Junk$|^INBOX.Junk$/"
|
||||
--delete2foldersbutnot <regex>: Do not delete folders matching regex.
|
||||
Example: --delete2foldersbutnot "/Tasks$|Contacts$|Foo$/"
|
||||
|
||||
|
||||
=======================================================================
|
||||
Q. I want to play with headers line and --regexmess but I want to leave
|
||||
the body as is.
|
||||
|
||||
R. The header/body separation is a blank line so an example:
|
||||
--regexmess 's{\A(.*?(?! ^$))^Date:(.*?)$}{$1Date:$2\nX-Date:$2}gxms'
|
||||
|
||||
Will replace the next three lines
|
||||
|
||||
Message-ID: <499EF800.4030002@blabla.fr>
|
||||
Date: Fri, 20 Feb 2009 19:35:44 +0100
|
||||
From: Gilles LAMIRAL <lamiral@linux-france.org>
|
||||
|
||||
by the next four lines
|
||||
|
||||
Message-ID: <499EF800.4030002@blabla.fr>
|
||||
Date: Fri, 20 Feb 2009 19:35:44 +0100
|
||||
X-Date: Fri, 20 Feb 2009 19:35:44 +0100
|
||||
From: Gilles LAMIRAL <lamiral@linux-france.org>
|
||||
|
||||
|
||||
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?
|
||||
|
||||
R. You fall in the classical mbox versus Maildir/ format
|
||||
problem. May be you use a misconfigured procmail rule.
|
||||
|
||||
A header beginning like the following one is in the mbox
|
||||
format, header line 1 has no colon behind "From", header
|
||||
lines 2 through N do have a colon :
|
||||
|
||||
From foo@yoyo.org Sat Jun 22 01:10:21 2002
|
||||
Return-Path: <foo@yoyo.org>
|
||||
Received: ...
|
||||
|
||||
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 issue you have several solutions
|
||||
|
||||
a) Remove manually this first "From " line for each message before
|
||||
using imapsync.
|
||||
|
||||
b) Replace manually the whitespace by a colon in string "From " but you
|
||||
might end with two "From:" lines (just have a look at the other
|
||||
header lines of the message)
|
||||
|
||||
c) Run imapsync with the following option (this replaces "From "by "From:"):
|
||||
--regexmess 's/\AFrom /From: /'
|
||||
|
||||
or may be better (no other "From:" collision):
|
||||
|
||||
d) Run imapsync with the following option (this replaces "From "by "X-om:"):
|
||||
--regexmess 's/\AFrom /X-From: /'
|
||||
|
||||
e) Run imapsync with the following option (this removes the whole "From " line):
|
||||
--regexmess 's{\AFrom\ [^\n]*(\n)?}{}gxms'
|
||||
|
||||
Solution e) is solution a) made by imapsync itself.
|
||||
Solutions c) and d) keep "From " lines information
|
||||
(normally it's useless to keep them)
|
||||
|
||||
Best solutions are e) or d).
|
||||
|
||||
=======================================================================
|
||||
Q. The contact folder isn't well copied.
|
||||
How to copy the contact folder?
|
||||
|
||||
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)
|
||||
|
||||
|
||||
======================================================================
|
||||
Q: How can I write an .rpm with imapsync
|
||||
|
||||
R. You'll find an RPM imapsync.spec file in the directory learn/rpm/
|
||||
It has been downloaded from
|
||||
https://svn.fysik.dtu.dk/projects/rpmbuild/trunk/SPECS/imapsync.spec
|
||||
It has been tested with imapsync 1.434 (May 2011) on CentOS5
|
||||
and RedHat RHEL5 Linux. (Thanks to Ole Holm Nielsen).
|
||||
This imapsync.spec is coming from Neil Brown work in 2007.
|
||||
|
||||
=======================================================================
|
||||
Q. Where I can read up on the various IMAP RFCs?
|
||||
|
||||
R. Here:
|
||||
|
||||
RFC 3501 - INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1
|
||||
http://www.faqs.org/rfcs/rfc3501.html
|
||||
|
||||
RFC2683 - IMAP4 Implementation Recommendations
|
||||
http://www.faqs.org/rfcs/rfc2683.html
|
||||
|
||||
RFC 2595 - Using TLS with IMAP, POP3 and ACAP
|
||||
http://www.faqs.org/rfcs/rfc2595.html
|
||||
|
||||
RFC 2822 - Internet Message Format
|
||||
http://www.faqs.org/rfcs/rfc2822.html
|
||||
|
||||
RFC 2342 - IMAP4 Namespace
|
||||
http://www.faqs.org/rfcs/rfc2342.html
|
||||
|
||||
RFC2180 - IMAP4 Multi-Accessed Mailbox Practice
|
||||
http://www.faqs.org/rfcs/rfc2180.html
|
||||
|
||||
RFC 4549 - Synchronization Operations for Disconnected IMAP4 Clients
|
||||
http://www.faqs.org/rfcs/rfc4549.html
|
||||
|
||||
|
1
FAQ
Symbolic link
1
FAQ
Symbolic link
|
@ -0,0 +1 @@
|
|||
FAQ.d/FAQ.General.txt
|
Loading…
Add table
Add a link
Reference in a new issue