blob: 4192812b6001ccd86fbea2028094b347601680bc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
imapsync performs stateful synchronization between two IMAP4rev1
servers. Such synchronization is made possible by the QRESYNC extension
from [RFC7162]; for convenience reasons servers must also support
LIST-EXTENDED [RFC5258], LIST-STATUS [RFC5819] and UIDPLUS [RFC4315].
Furthermore, while imapsync can work with servers lacking support for
LITERAL+ [RFC2088] and MULTIAPPEND [RFC3502], these extensions greatly
improve performance by reducing the number of required round trips hence
are recommended.
Consult the manual for more information.
imapsync is Copyright© 2015 Guilhem Moulin ⟨guilhem@fripost.org⟩, and
licensed for use under the GNU General Public License version 3 or
later. See ‘COPYING’ for specific terms and distribution information.
#######################################################################
IMAP traffic is mostly text (beside message bodies perhaps) hence
compresses pretty well: enabling compression can save a great amount of
network resources.
However establishing a SSL/TLS connection (type=imaps, or type=imap and
STARTTLS=YES) yields a small overhead due to the SSL/TLS handshake.
On the other hand if SSH access is allowed on the remote server, one can
tunnel the IMAP traffic through SSH and use OpenSSH's ControlPersist
feature to save most of the cryptographic overhead (at the expense of a
local 'ssh' process and a remote 'imap' process). Moreover if the IMAP
user is a valid UNIX user it is possible to use pre-authentication on
the remote server as well, which saves the extra round trip caused by
the AUTHENTICATE command. For instance the following configuration
snippet saves bandwidth and brings a significant speed gain compared to
type=imaps.
local: $XDG_CONFIG_HOME/imapsync:
[remote]
type = tunnel
command = /usr/bin/ssh user@imap.example.net
local: ~/.ssh/config:
Host imap.example.net
IdentityFile ~/.ssh/id-imapsync
IdentitiesOnly yes
ControlPath /run/shm/%u@%n
ControlMaster auto
ControlPersist 10m
StrictHostKeyChecking yes
ServerAliveCountMax 3
ServerAliveInterval 10s
RequestTTY no
Compression yes
remote: ~user/.ssh/authorized_keys:
command="/usr/lib/dovecot/imap",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-... id-imapsync
|