692 lines
33 KiB
Plaintext
692 lines
33 KiB
Plaintext
OFFLINEIMAP(1) OfflineIMAP Manual OFFLINEIMAP(1)
|
|
|
|
|
|
|
|
NAME
|
|
OfflineIMAP - Powerful IMAP/Maildir synchronization and reader support
|
|
|
|
SYNOPSIS
|
|
offlineimap [ -1 ] [ -P profiledir ] [ -a accountlist ] [ -c configfile
|
|
] [ -d debugtype[,...] ] [ -l filename ] [ -o ] [ -u interface ]
|
|
|
|
|
|
offlineimap -h | --help
|
|
|
|
|
|
DESCRIPTION
|
|
OfflineIMAP is a tool to simplify your e-mail reading. With
|
|
OfflineIMAP, you can read the same mailbox from multiple computers.
|
|
You get a current copy of your messages on each computer, and changes
|
|
you make one place will be visible on all other systems. For instance,
|
|
you can delete a message on your home computer, and it will appear
|
|
deleted on your work computer as well. OfflineIMAP is also useful if
|
|
you want to use a mail reader that does not have IMAP support, has poor
|
|
IMAP support, or does not provide disconnected operation.
|
|
|
|
OfflineIMAP is FAST; it synchronizes my two accounts with over 50 fold-
|
|
ers in 3 seconds. Other similar tools might take over a minute, and
|
|
achieve a less-reliable result. Some mail readers can take over 10
|
|
minutes to do the same thing, and some don't even support it at all.
|
|
Unlike other mail tools, OfflineIMAP features a multi-threaded synchro-
|
|
nization algorithm that can dramatically speed up performance in many
|
|
situations by synchronizing several different things simultaneously.
|
|
|
|
OfflineIMAP is FLEXIBLE; you can customize which folders are synced via
|
|
regular expressions, lists, or Python expressions; a versatile and com-
|
|
prehensive configuration file is used to control behavior; two user
|
|
interfaces are built-in; fine-tuning of synchronization performance is
|
|
possible; internal or external automation is supported; SSL and PREAUTH
|
|
tunnels are both supported; offline (or "unplugged") reading is sup-
|
|
ported; and esoteric IMAP features are supported to ensure compatibil-
|
|
ity with the widest variety of IMAP servers.
|
|
|
|
OfflineIMAP is SAFE; it uses an algorithm designed to prevent mail loss
|
|
at all costs. Because of the design of this algorithm, even program-
|
|
ming errors should not result in loss of mail. I am so confident in
|
|
the algorithm that I use my own personal and work accounts for testing
|
|
of OfflineIMAP pre-release, development, and beta releases. Of course,
|
|
legally speaking, OfflineIMAP comes with no warranty, so I am not
|
|
responsible if this turns out to be wrong.
|
|
|
|
METHOD OF OPERATION
|
|
OfflineIMAP traditionally operates by maintaining a hierarchy of mail
|
|
folders in Maildir format locally. Your own mail reader will read mail
|
|
from this tree, and need never know that the mail comes from IMAP.
|
|
OfflineIMAP will detect changes to the mail folders on your IMAP server
|
|
and your own computer and bi-directionally synchronize them, copying,
|
|
marking, and deleting messages as necessary.
|
|
|
|
With OfflineIMAP 4.0, a powerful new ability has been introduced -- the
|
|
program can now synchronize two IMAP servers with each other, with no
|
|
need to have a Maildir layer in-between. Many people use this if they
|
|
use a mail reader on their local machine that does not support
|
|
Maildirs. People may install an IMAP server on their local machine,
|
|
and point both OfflineIMAP and their mail reader of choice at it. This
|
|
is often preferable to the mail reader's own IMAP support since
|
|
OfflineIMAP supports many features (offline reading, for one) that most
|
|
IMAP-aware readers don't. However, this feature is not as time-tested
|
|
as traditional syncing, so my advice is to stick with normal methods of
|
|
operation for the time being.
|
|
|
|
QUICK START
|
|
If you have already installed OfflineIMAP system-wide, or your system
|
|
administrator has done that for you, your task for setting up
|
|
OfflineIMAP for the first time is quite simple. You just need to set
|
|
up your configuration file, make your folder directory, and run it!
|
|
|
|
You can quickly set up your configuration file. The distribution
|
|
includes a file offlineimap.conf.minimal (Debian users may find this at
|
|
/usr/share/doc/offlineimap/examples/offlineimap.conf.minimal) that is a
|
|
basic example of setting of OfflineIMAP. You can simply copy this file
|
|
into your home directory and name it .offlineimaprc (note the leading
|
|
period). A command such as cp offlineimap.conf.minimal
|
|
~/.offlineimaprc will do it. Or, if you prefer, you can just copy this
|
|
text to ~/.offlineimaprc:
|
|
|
|
[general]
|
|
accounts = Test
|
|
|
|
[Account Test]
|
|
localrepository = Local
|
|
remoterepository = Remote
|
|
|
|
[Repository Local]
|
|
type = Maildir
|
|
localfolders = ~/Test
|
|
|
|
[Repository Remote]
|
|
type = IMAP
|
|
remotehost = examplehost
|
|
remoteuser = jgoerzen
|
|
|
|
Now, edit the ~/.offlineimaprc file with your favorite editor. All you
|
|
have to do is specify a directory for your folders to be in (on the
|
|
localfolders line), the host name of your IMAP server (on the remote-
|
|
host line), and your login name on the remote (on the remoteuser line).
|
|
That's it!
|
|
|
|
To run OfflineIMAP, you just have to say offlineimap -- it will fire
|
|
up, ask you for a login password if necessary, synchronize your fold-
|
|
ers, and exit. See? You can just throw away the rest of this finely-
|
|
crafted, perfectly-honed manual! Of course, if you want to see how you
|
|
can make OfflineIMAP FIVE TIMES FASTER FOR JUST $19.95 (err, well, $0),
|
|
you have to read on!
|
|
|
|
INSTALLATION
|
|
If you are reading this document via the "man" command, it is likely
|
|
that you have no installation tasks to perform; your system administra-
|
|
tor has already installed it. If you need to install it yourself, you
|
|
have three options: a system-wide installation with Debian, system-wide
|
|
installation with other systems, and a single-user installation. You
|
|
can download the latest version of OfflineIMAP from the OfflineIMAP
|
|
website <URL:http://software.complete.org/offlineimap/>.
|
|
|
|
PREREQUISITES
|
|
In order to use OfflineIMAP, you need to have these conditions satis-
|
|
fied:
|
|
|
|
o Your mail server must support IMAP. Most Internet Service Providers
|
|
and corporate networks do, and most operating systems have an IMAP
|
|
implementation readily available.
|
|
|
|
o You must have Python version 2.2.1 or above installed. If you are
|
|
running on Debian GNU/Linux, this requirement will automatically be
|
|
taken care of for you. If you do not have Python already, check with
|
|
your system administrator or operating system vendor; or, download it
|
|
from the Python website <URL:http://www.python.org/>. If you intend
|
|
to use the Tk interface, you must have Tkinter (python-tk) installed.
|
|
If you intend to use the SSL interface, your Python must have been
|
|
built with SSL support.
|
|
|
|
o Have a mail reader that supports the Maildir mailbox format. Most
|
|
modern mail readers have this support built-in, so you can choose
|
|
from a wide variety of mail servers. This format is also known as
|
|
the "qmail" format, so any mail reader compatible with it will work
|
|
with OfflineIMAP. If you do not have a mail reader that supports
|
|
Maildir, you can often install a local IMAP server and point both
|
|
OfflineIMAP and your mail reader at it.
|
|
|
|
SYSTEM-WIDE INSTALLATION, DEBIAN
|
|
If you are tracking Debian unstable, you may install OfflineIMAP by
|
|
simply running the following command as root:
|
|
|
|
apt-get install offlineimap
|
|
|
|
If you are not tracking Debian unstable, download the Debian .deb pack-
|
|
age from the OfflineIMAP website <URL:http://software.com-
|
|
plete.org/offlineimap/> and then run dpkg -i to install the downloaded
|
|
package. Then, skip to [XRef to CONFIGURATION] below. You will type
|
|
offlineimap to invoke the program.
|
|
|
|
SYSTEM-WIDE INSTALLATION, OTHER
|
|
Download the tar.gz version of the package from the website
|
|
<URL:http://software.complete.org/offlineimap/>. Then run these com-
|
|
mands, making sure that you are the "root" user first:
|
|
|
|
tar -zxvf offlineimap_x.y.z.tar.gz
|
|
cd offlineimap-x.y.z
|
|
python2.2 setup.py install
|
|
|
|
On some systems, you will need to use python instead of python2.2.
|
|
Next, proceed to [XRef to CONFIGURATION] below. You will type
|
|
offlineimap to invoke the program.
|
|
|
|
SINGLE-ACCOUNT INSTALLATION
|
|
Download the tar.gz version of the package from the website
|
|
<URL:http://software.complete.org/offlineimap/>. Then run these com-
|
|
mands:
|
|
|
|
tar -zxvf offlineimap_x.y.z.tar.gz
|
|
cd offlineimap-x.y.z
|
|
|
|
When you want to run OfflineIMAP, you will issue the cd command as
|
|
above and then type ./offlineimap.py; there is no installation step
|
|
necessary.
|
|
|
|
CONFIGURATION
|
|
OfflineIMAP is regulated by a configuration file that is normally
|
|
stored in ~/.offlineimaprc. OfflineIMAP ships with a file named
|
|
offlineimap.conf that you should copy to that location and then edit.
|
|
This file is vital to proper operation of the system; it sets every-
|
|
thing you need to run OfflineIMAP. Full documentation for the configu-
|
|
ration file is included within the sample file.
|
|
|
|
OfflineIMAP also ships a file named offlineimap.conf.minimal that you
|
|
can also try. It's useful if you want to get started with the most
|
|
basic feature set, and you can read about other features later with
|
|
offlineimap.conf.
|
|
|
|
OPTIONS
|
|
Most configuration is done via the configuration file. Nevertheless,
|
|
there are a few command-line options that you may set for OfflineIMAP.
|
|
|
|
-1 Disable most multithreading operations and use solely a single-
|
|
connection sync. This effectively sets the maxsyncaccounts and
|
|
all maxconnections configuration file variables to 1.
|
|
|
|
-P profiledir
|
|
Sets OfflineIMAP into profile mode. The program will create
|
|
profiledir (it must not already exist). As it runs, Python pro-
|
|
filing information about each thread is logged into profiledir.
|
|
Please note: This option is present for debugging and optimiza-
|
|
tion only, and should NOT be used unless you have a specific
|
|
reason to do so. It will significantly slow program perfor-
|
|
mance, may reduce reliability, and can generate huge amounts of
|
|
data. You must use the -1 option when you use -P.
|
|
|
|
-a accountlist
|
|
Overrides the accounts option in the general section of the con-
|
|
figuration file. You might use this to exclude certain
|
|
accounts, or to sync some accounts that you normally prefer not
|
|
to. Separate the accounts by commas, and use no embedded
|
|
spaces.
|
|
|
|
-c configfile
|
|
Specifies a configuration file to use in lieu of the default,
|
|
~/.offlineimaprc.
|
|
|
|
-d debugtype[,...]
|
|
Enables debugging for OfflineIMAP. This is useful if you are
|
|
trying to track down a malfunction or figure out what is going
|
|
on under the hood. I suggest that you use this with -1 to make
|
|
the results more sensible.
|
|
|
|
-d requires one or more debugtypes, separated by commas. These
|
|
define what exactly will be debugged, and include three options:
|
|
imap, maildir, and thread. The imap option will enable IMAP
|
|
protocol stream and parsing debugging. Note that the output may
|
|
contain passwords, so take care to remove that from the debug-
|
|
ging output before sending it to anyone else. The maildir
|
|
option will enable debugging for certain Maildir operations.
|
|
And thread will debug the threading model.
|
|
|
|
-l filename
|
|
Enables logging to filename. This will log everything that goes
|
|
to the screen to the specified file. Additionally, if any
|
|
debugging is specified with -d, then debug messages will not go
|
|
to the screen, but instead to the logfile only.
|
|
|
|
-o Run only once, ignoring all autorefresh settings in the configu-
|
|
ration file.
|
|
|
|
-h
|
|
|
|
--help Show summary of options.
|
|
|
|
-u interface
|
|
Specifies an alternative user interface module to use. This
|
|
overrides the default specified in the configuration file. The
|
|
pre-defined options are listed in the User Interfaces section.
|
|
|
|
USER INTERFACES
|
|
OfflineIMAP has a pluggable user interface system that lets you choose
|
|
how the program communicates information to you. There are two graphi-
|
|
cal interfaces, two terminal interfaces, and two noninteractive inter-
|
|
faces suitable for scripting or logging purposes. The ui option in the
|
|
configuration file specifies user interface preferences. The -u com-
|
|
mand-line option can override the configuration file setting. The
|
|
available values for the configuration file or command-line are
|
|
described in this section.
|
|
|
|
TK.BLINKENLIGHTS
|
|
Tk.Blinkenlights is an interface designed to be sleek, fun to watch,
|
|
and informative of the overall picture of what OfflineIMAP is doing. I
|
|
consider it to be the best general-purpose interface in OfflineIMAP.
|
|
|
|
Tk.Blinkenlights contains, by default, a small window with a row of
|
|
LEDs, a small log, and a row of command buttons. The total size of the
|
|
window is very small, so it uses little desktop space, yet it is quite
|
|
functional. The optional, toggleable, log shows more detail about what
|
|
is happening and is color-coded to match the color of the lights.
|
|
|
|
Tk.Blinkenlights is the only user interface that has configurable
|
|
parameters; see the example offlineimap.conf for more details.
|
|
|
|
Each light in the Blinkenlights interface represents a thread of execu-
|
|
tion -- that is, a particular task that OfflineIMAP is performing right
|
|
now. The colors indicate what task the particular thread is perform-
|
|
ing, and are as follows:
|
|
|
|
Black indicates that this light's thread has terminated; it will light
|
|
up again later when new threads start up. So, black indicates
|
|
no activity.
|
|
|
|
Red (Meaning 1)
|
|
is the color of the main program's thread, which basically does
|
|
nothing but monitor the others. It might remind you of HAL 9000
|
|
in 2001.
|
|
|
|
Gray indicates that the thread is establishing a new connection to
|
|
the IMAP server.
|
|
|
|
Purple is the color of an account synchronization thread that is moni-
|
|
toring the progress of the folders in that account (not generat-
|
|
ing any I/O).
|
|
|
|
Cyan indicates that the thread is syncing a folder.
|
|
|
|
Green means that a folder's message list is being loaded.
|
|
|
|
Blue is the color of a message synchronization controller thread.
|
|
|
|
Orange indicates that an actual message is being copied. (We use fuch-
|
|
sia for fake messages.)
|
|
|
|
Red (meaning 2)
|
|
indicates that a message is being deleted.
|
|
|
|
Yellow / bright orange
|
|
indicates that message flags are being added.
|
|
|
|
Pink / bright red
|
|
indicates that message flags are being removed.
|
|
|
|
Red / Black Flashing
|
|
corresponds to the countdown timer that runs between synchro-
|
|
nizations.
|
|
|
|
The name of this interfaces derives from a bit of computer history.
|
|
Eric Raymond's Jargon File defines blinkenlights, in part, as:
|
|
|
|
|
|
Front-panel diagnostic lights on a computer, esp. a dinosaur.
|
|
Now that dinosaurs are rare, this term usually refers to status
|
|
lights on a modem, network hub, or the like.
|
|
|
|
This term derives from the last word of the famous blackletter-
|
|
Gothic sign in mangled pseudo-German that once graced about half
|
|
the computer rooms in the English-speaking world. One version
|
|
ran in its entirety as follows:
|
|
|
|
ACHTUNG! ALLES LOOKENSPEEPERS!
|
|
|
|
Das computermachine ist nicht fuer gefingerpoken und mitten-
|
|
grabben. Ist easy schnappen der springenwerk, blowenfusen und
|
|
poppencorken mit spitzensparken. Ist nicht fuer gewerken bei
|
|
das dumpkopfen. Das rubbernecken sichtseeren keepen das cotten-
|
|
pickenen hans in das pockets muss; relaxen und watchen das
|
|
blinkenlichten.
|
|
|
|
CURSES.BLINKENLIGHTS
|
|
Curses.Blinkenlights is an interface very similar to Tk.Blinkenlights,
|
|
but is designed to be run in a console window (an xterm, Linux virtual
|
|
terminal, etc.) Since it doesn't have access to graphics, it isn't
|
|
quite as pretty, but it still gets the job done.
|
|
|
|
Please see the Tk.Blinkenlights section above for more information
|
|
about the colors used in this interface.
|
|
|
|
TK.VERBOSEUI
|
|
Tk.VerboseUI (formerly known as Tk.TkUI) is a graphical interface that
|
|
presents a variable-sized window. In the window, each currently-exe-
|
|
cuting thread has a section where its name and current status are dis-
|
|
played. This interface is best suited to people running on slower con-
|
|
nections, as you get a lot of detail, but for fast connections, the
|
|
detail may go by too quickly to be useful. People with fast connec-
|
|
tions may wish to use Tk.Blinkenlights instead.
|
|
|
|
TTY.TTYUI
|
|
TTY.TTYUI interface is for people running in basic, non-color termi-
|
|
nals. It prints out basic status messages and is generally friendly to
|
|
use on a console or xterm.
|
|
|
|
NONINTERACTIVE.BASIC
|
|
Noninteractive.Basic is designed for situations in which OfflineIMAP
|
|
will be run non-attended and the status of its execution will be
|
|
logged. You might use it, for instance, to have the system run auto-
|
|
matically and e-mail you the results of the synchronization. This user
|
|
interface is not capable of reading a password from the keyboard;
|
|
account passwords must be specified using one of the configuration file
|
|
options.
|
|
|
|
NONINTERACTIVE.QUIET
|
|
Noninteractive.Quiet is designed for non-attended running in situations
|
|
where normal status messages are not desired. It will output nothing
|
|
except errors and serious warnings. Like Noninteractive.Basic, this
|
|
user interface is not capable of reading a password from the keyboard;
|
|
account passwords must be specified using one of the configuration file
|
|
options.
|
|
|
|
EXAMPLES
|
|
Here are some example configurations for various situations. Please e-
|
|
mail any other examples you have that may be useful to me.
|
|
|
|
MULTIPLE ACCOUNTS WITH MUTT
|
|
This example shows you how to set up OfflineIMAP to synchronize multi-
|
|
ple accounts with the mutt mail reader.
|
|
|
|
Start by creating a directory to hold your folders by running mkdir
|
|
~/Mail. Then, in your ~/.offlineimaprc, specify:
|
|
|
|
accounts = Personal, Work
|
|
|
|
Make sure that you have both an [Account Personal] and an [Account
|
|
Work] section. The local repository for each account must have differ-
|
|
ent localfolder path names. Also, make sure to enable [mbnames].
|
|
|
|
In each local repository section, write something like this:
|
|
|
|
localfolders = ~/Mail/Personal
|
|
|
|
Finally, add these lines to your ~/.muttrc:
|
|
|
|
source ~/path-to-mbnames-muttrc-mailboxes
|
|
folder-hook Personal set from="youremail@personal.com"
|
|
folder-hook Work set from="youremail@work.com"
|
|
set mbox_type=Maildir
|
|
set folder=$HOME/Mail
|
|
spoolfile=+Personal/INBOX
|
|
|
|
That's it!
|
|
|
|
UW-IMAPD AND REFERENCES
|
|
Some users with a UW-IMAPD server need to use OfflineIMAP's "reference"
|
|
feature to get at their mailboxes, specifying a reference of "~/Mail"
|
|
or "#mh/" depending on the configuration. The below configuration from
|
|
(originally from docwhat@gerf.org) shows using a reference of Mail, a
|
|
nametrans that strips the leading Mail/ off incoming folder names, and
|
|
a folderfilter that limits the folders synced to just three.
|
|
|
|
[Account Gerf]
|
|
localrepository = GerfLocal
|
|
remoterepository = GerfRemote
|
|
|
|
[Repository GerfLocal]
|
|
type = Maildir
|
|
localfolders = ~/Mail
|
|
|
|
[Repository GerfRemote]
|
|
type = IMAP
|
|
remotehost = gerf.org
|
|
ssl = yes
|
|
remoteuser = docwhat
|
|
reference = Mail
|
|
# Trims off the preceeding Mail on all the folder names.
|
|
nametrans = lambda foldername: \
|
|
re.sub('^Mail/', '', foldername)
|
|
# Yeah, you have to mention the Mail dir, even though it
|
|
# would seem intuitive that reference would trim it.
|
|
folderfilter = lambda foldername: foldername in [
|
|
'Mail/INBOX',
|
|
'Mail/list/zaurus-general',
|
|
'Mail/list/zaurus-dev',
|
|
]
|
|
maxconnections = 1
|
|
holdconnectionopen = no
|
|
|
|
PYTHONFILE CONFIGURATION FILE OPTION
|
|
You can have OfflineIMAP load up a Python file before evaluating the
|
|
configuration file options that are Python expressions. This example
|
|
is based on one supplied by Tommi Virtanen for this feature.
|
|
|
|
In ~/.offlineimap.rc, he adds these options:
|
|
|
|
[general]
|
|
pythonfile=~/.offlineimap.py
|
|
[Repository foo]
|
|
foldersort=mycmp
|
|
|
|
Then, the ~/.offlineimap.py file will contain:
|
|
|
|
prioritized = ['INBOX', 'personal', 'announce', 'list']
|
|
|
|
def mycmp(x, y):
|
|
for prefix in prioritized:
|
|
xsw = x.startswith(prefix)
|
|
ysw = y.startswith(prefix)
|
|
if xsw and ysw:
|
|
return cmp(x, y)
|
|
elif xsw:
|
|
return -1
|
|
elif ysw:
|
|
return +1
|
|
return cmp(x, y)
|
|
|
|
def test_mycmp():
|
|
import os, os.path
|
|
folders=os.listdir(os.path.expanduser('~/data/mail/tv@hq.yok.utu.fi'))
|
|
folders.sort(mycmp)
|
|
print folders
|
|
|
|
This code snippet illustrates how the foldersort option can be cus-
|
|
tomized with a Python function from the pythonfile to always synchro-
|
|
nize certain folders first.
|
|
|
|
ERRORS
|
|
If you get one of some frequently-encountered or confusing errors,
|
|
please check this section.
|
|
|
|
UID VALIDITY PROBLEM FOR FOLDER
|
|
IMAP servers use a unique ID (UID) to refer to a specific message.
|
|
This number is guaranteed to be unique to a particular message forever.
|
|
No other message in the same folder will ever get the same UID. UIDs
|
|
are an integral part of OfflineIMAP's synchronization scheme; they are
|
|
used to match up messages on your computer to messages on the server.
|
|
|
|
Sometimes, the UIDs on the server might get reset. Usually this will
|
|
happen if you delete and then recreate a folder. When you create a
|
|
folder, the server will often start the UID back from 1. But
|
|
OfflineIMAP might still have the UIDs from the previous folder by the
|
|
same name stored. OfflineIMAP will detect this condition and skip the
|
|
folder. This is GOOD, because it prevents data loss.
|
|
|
|
You can fix it by removing your local folder and cache data. For
|
|
instance, if your folders are under ~/Folders and the folder with the
|
|
problem is INBOX, you'd type this:
|
|
|
|
rm -r ~/Folders/INBOX
|
|
rm -r ~/.offlineimap/Account-AccountName
|
|
rm -r ~/.offlineimap/Repository-RepositoryName
|
|
|
|
(Of course, replace AccountName and RepositoryName with the names as
|
|
specified in ~/.offlineimaprc).
|
|
|
|
Next time you run OfflineIMAP, it will re-download the folder with the
|
|
new UIDs. Note that the procedure specified above will lose any local
|
|
changes made to the folder.
|
|
|
|
Some IMAP servers are broken and do not support UIDs properly. If you
|
|
continue to get this error for all your folders even after performing
|
|
the above procedure, it is likely that your IMAP server falls into this
|
|
category. OfflineIMAP is incompatible with such servers. Using
|
|
OfflineIMAP with them will not destroy any mail, but at the same time,
|
|
it will not actually synchronize it either. (OfflineIMAP will detect
|
|
this condition and abort prior to synchronization.)
|
|
|
|
This question comes up frequently on the OfflineIMAP mailing list
|
|
<URL:http://lists.complete.org/offlineimap@complete.org/>. You can
|
|
find a detailed discussion <URL:http://lists.com-
|
|
plete.org/offlineimap@complete.org/2003/04/msg00012.html.gz> of the
|
|
problem there.
|
|
|
|
CONFORMING TO
|
|
o Internet Message Access Protocol version 4rev1 (IMAP 4rev1) as speci-
|
|
fied in RFC2060 and RFC3501
|
|
|
|
o CRAM-MD5 as specified in RFC2195
|
|
|
|
o Maildir as specified in the Maildir manpage
|
|
<URL:http://www.qmail.org/qmail-manual-html/man5/maildir.html> and
|
|
the qmail website <URL:http://cr.yp.to/proto/maildir.html>.
|
|
|
|
o Standard Python 2.2.1 as implemented on POSIX-compliant systems.
|
|
|
|
NOTES
|
|
DELETING LOCAL FOLDERS
|
|
OfflineIMAP does a two-way synchronization. That is, if you make a
|
|
change to the mail on the server, it will be propagated to your local
|
|
copy, and vise-versa. Some people might think that it would be wise to
|
|
just delete all their local mail folders periodically. If you do this
|
|
with OfflineIMAP, remember to also remove your local status cache
|
|
(~/.offlineimap by default). Otherwise, OfflineIMAP will take this as
|
|
an intentional deletion of many messages and will interpret your action
|
|
as requesting them to be deleted from the server as well. (If you
|
|
don't understand this, don't worry; you probably won't encounter this
|
|
situation)
|
|
|
|
MULTIPLE INSTANCES
|
|
OfflineIMAP is not designed to have several instances (for instance, a
|
|
cron job and an interactive invocation) run over the same mailbox
|
|
simultaneously. It will perform a check on startup and abort if
|
|
another OfflineIMAP is already running. If you need to schedule syn-
|
|
chronizations, please use the autorefresh settings rather than cron.
|
|
Alternatively, you can set a separate metadata directory for each
|
|
instance.
|
|
|
|
COPYING MESSAGES BETWEEN FOLDERS
|
|
Normally, when you copy a message between folders or add a new message
|
|
to a folder locally, OfflineIMAP will just do the right thing. How-
|
|
ever, sometimes this can be tricky -- if your IMAP server does not pro-
|
|
vide the SEARCH command, or does not return something useful,
|
|
OfflineIMAP cannot determine the new UID of the message. So, in these
|
|
rare instances, OfflineIMAP will upload the message to the IMAP server
|
|
and delete it from your local folder. Then, on your next sync, the
|
|
message will be re-downloaded with the proper UID. OfflineIMAP makes
|
|
sure that the message was properly uploaded before deleting it, so
|
|
there should be no risk of data loss.
|
|
|
|
MAILING LIST
|
|
There is an OfflineIMAP mailing list available. To subscribe, send the
|
|
text "Subscribe" in the subject of a mail to offlineimap-request@com-
|
|
plete.org. To post, send the message to offlineimap@complete.org.
|
|
Archives are available at
|
|
<URL:http://lists.complete.org/offlineimap@complete.org/>.
|
|
|
|
BUGS
|
|
Reports of bugs should be reported online at the OfflineIMAP homepage.
|
|
Debian users are encouraged to instead use the Debian bug-tracking sys-
|
|
tem.
|
|
|
|
UPGRADING TO 4.0
|
|
If you are upgrading from a version of OfflineIMAP prior to 3.99.12,
|
|
you will find that you will get errors when OfflineIMAP starts up
|
|
(relating to ConfigParser or AccountHashGenerator) and the configura-
|
|
tion file. This is because the config file format had to change to
|
|
accommodate new features in 4.0. Fortunately, it's not difficult to
|
|
adjust it to suit.
|
|
|
|
First thing you need to do is stop any running OfflineIMAP instance,
|
|
making sure first that it's synced all your mail. Then, modify your
|
|
~/.offlineimaprc file. You'll need to split up each account section
|
|
(make sure that it now starts with "Account ") into two Repository sec-
|
|
tions (one for the local side and another for the remote side.) See
|
|
the files offlineimap.conf.minimal and offlineimap.conf in the distri-
|
|
bution if you need more assistance.
|
|
|
|
OfflineIMAP's status directory area has also changed. Therefore, you
|
|
should delete everything in ~/.offlineimap as well as your local mail
|
|
folders.
|
|
|
|
When you start up OfflineIMAP 4.0, it will re-download all your mail
|
|
from the server and then you can continue using it like normal.
|
|
|
|
COPYRIGHT
|
|
OfflineIMAP, and this manual, are Copyright (C) 2002 - 2006 John
|
|
Goerzen.
|
|
|
|
This program is free software; you can redistribute it and/or modify it
|
|
under the terms of the GNU General Public License as published by the
|
|
Free Software Foundation; either version 2 of the License, or (at your
|
|
option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful, but
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of MER-
|
|
CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License along
|
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
imaplib.py comes from the Python dev tree and is licensed under the
|
|
GPL-compatible PSF license as stated in the file COPYRIGHT in the
|
|
OfflineIMAP distribution.
|
|
|
|
AUTHOR
|
|
OfflineIMAP, its libraries, documentation, and all included files,
|
|
except where noted, was written by John Goerzen <jgoerzen@complete.org>
|
|
and copyright is held as stated in the COPYRIGHT section.
|
|
|
|
OfflineIMAP may be downloaded, and information found, from its homepage
|
|
<URL:http://software.complete.org/offlineimap>.
|
|
|
|
SEE ALSO
|
|
mutt(1), python(1)
|
|
|
|
HISTORY
|
|
Detailed history may be found in the file ChangeLog in the OfflineIMAP
|
|
distribution. Feature and bug histories may be found in the file
|
|
debian/changelog which, despite its name, is not really Debian-spe-
|
|
cific. This section provides a large overview.
|
|
|
|
Development on OfflineIMAP began on June 18, 2002. Version 1.0.0 was
|
|
released three days later on June 21, 2002. Point releases followed,
|
|
including speed optimizations and some compatibility fixes.
|
|
|
|
Version 2.0.0 was released on July 3, 2002, and represented the first
|
|
time the synchronization became multithreaded and, to the best of my
|
|
knowledge, the first multithreaded IMAP syncrhonizing application in
|
|
existance. The last 2.0.x release, 2.0.8, was made on July 9.
|
|
|
|
Version 3.0.0 was released on July 11, 2002, and introduced modular
|
|
user interfaces and the first GUI interface for OfflineIMAP. This man-
|
|
ual also was introduced with 3.0.0, along with many command-line
|
|
options. Version 3.1.0 was released on July 21, adding the Noninterac-
|
|
tive user interfaces, profiling support, and several bugfixes. 3.2.0
|
|
was released on July 24, adding support for the Blinkenlights GUI
|
|
interface. OfflineIMAP entered maintenance mode for awhile, as it had
|
|
reached a feature-complete milestone in my mind.
|
|
|
|
The 3.99.x branch began in on October 7, 2002, to begin work for 4.0.
|
|
The Curses.Blinkenlights interface was added in 3.99.6, and many archi-
|
|
tectural changes were made.
|
|
|
|
4.0.0 was released on July 18, 2003, including the ability to synchro-
|
|
nize directly between two IMAP servers, the first re-architecting of
|
|
the configuration file to refine the notion of an account, and the new
|
|
Curses interface.
|
|
|
|
|
|
|
|
John Goerzen 01 December 2006 OFFLINEIMAP(1)
|