Removed generated docs from source tree
This commit is contained in:
commit
19de4ee59d
1872
manual.html
1872
manual.html
File diff suppressed because it is too large
Load Diff
BIN
manual.pdf
BIN
manual.pdf
Binary file not shown.
691
manual.txt
691
manual.txt
@ -1,691 +0,0 @@
|
|||||||
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)
|
|
803
offlineimap.1
803
offlineimap.1
@ -1,803 +0,0 @@
|
|||||||
.\" This manpage has been automatically generated by docbook2man
|
|
||||||
.\" from a DocBook document. This tool can be found at:
|
|
||||||
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
|
|
||||||
.\" Please send any bug reports, improvements, comments, patches,
|
|
||||||
.\" etc. to Steve Cheng <steve@ggi-project.org>.
|
|
||||||
.TH "OFFLINEIMAP" "1" "01 December 2006" "John Goerzen" "OfflineIMAP Manual"
|
|
||||||
|
|
||||||
.SH NAME
|
|
||||||
OfflineIMAP \- Powerful IMAP/Maildir synchronization and reader support
|
|
||||||
.SH SYNOPSIS
|
|
||||||
|
|
||||||
\fBofflineimap\fR [ \fB-1\fR ] [ \fB-P \fIprofiledir\fB\fR ] [ \fB-a \fIaccountlist\fB\fR ] [ \fB-c \fIconfigfile\fB\fR ] [ \fB-d \fIdebugtype[,...]\fB\fR ] [ \fB-l \fIfilename\fB\fR ] [ \fB-o\fR ] [ \fB-u \fIinterface\fB\fR ]
|
|
||||||
|
|
||||||
|
|
||||||
\fBofflineimap\fR \fB-h\fR | \fB--help\fR
|
|
||||||
|
|
||||||
.SH "DESCRIPTION"
|
|
||||||
.PP
|
|
||||||
\fBOfflineIMAP\fR is a tool to simplify your e-mail
|
|
||||||
reading. With \fBOfflineIMAP\fR, 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. \fBOfflineIMAP\fR 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.
|
|
||||||
.PP
|
|
||||||
\fBOfflineIMAP\fR is \fBFAST\fR; it synchronizes
|
|
||||||
my two accounts with over 50 folders 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, \fBOfflineIMAP\fR features a
|
|
||||||
multi-threaded synchronization algorithm that can dramatically
|
|
||||||
speed up performance in many situations by synchronizing
|
|
||||||
several different things simultaneously.
|
|
||||||
.PP
|
|
||||||
\fBOfflineIMAP\fR is \fBFLEXIBLE\fR; you can
|
|
||||||
customize which folders are synced via regular expressions,
|
|
||||||
lists, or Python expressions; a versatile and comprehensive
|
|
||||||
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 supported; and esoteric IMAP
|
|
||||||
features are supported to ensure compatibility with the widest
|
|
||||||
variety of IMAP servers.
|
|
||||||
.PP
|
|
||||||
\fBOfflineIMAP\fR is \fBSAFE\fR; it uses an
|
|
||||||
algorithm designed to prevent mail loss at all costs. Because
|
|
||||||
of the design of this algorithm, even programming 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 \fBOfflineIMAP\fR pre-release, development, and beta
|
|
||||||
releases. Of course, legally speaking, \fBOfflineIMAP\fR comes
|
|
||||||
with no warranty, so I am not responsible if this turns out
|
|
||||||
to be wrong.
|
|
||||||
.SS "METHOD OF OPERATION"
|
|
||||||
.PP
|
|
||||||
\fBOfflineIMAP\fR 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. \fBOfflineIMAP\fR 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.
|
|
||||||
.PP
|
|
||||||
With \fBOfflineIMAP\fR 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 \fBOfflineIMAP\fR and their mail reader
|
|
||||||
of choice at it. This is often preferable to the mail
|
|
||||||
reader's own IMAP support since \fBOfflineIMAP\fR 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.
|
|
||||||
.SH "QUICK START"
|
|
||||||
.PP
|
|
||||||
If you have already installed \fBOfflineIMAP\fR system-wide,
|
|
||||||
or your system administrator has done that for you, your task
|
|
||||||
for setting up \fBOfflineIMAP\fR for the first time is quite
|
|
||||||
simple. You just need to set up your configuration file, make
|
|
||||||
your folder directory, and run it!
|
|
||||||
.PP
|
|
||||||
You can quickly set up your configuration file. The distribution
|
|
||||||
includes a file \fIofflineimap.conf.minimal\fR
|
|
||||||
(Debian users
|
|
||||||
may find this at
|
|
||||||
\fI/usr/share/doc/offlineimap/examples/offlineimap.conf.minimal\fR) that is a basic example of setting of \fBOfflineIMAP\fR\&. You can
|
|
||||||
simply copy this file into your home directory and name it
|
|
||||||
\fI\&.offlineimaprc\fR (note the leading period). A
|
|
||||||
command such as \fBcp offlineimap.conf.minimal ~/.offlineimaprc\fR will do it. Or, if you prefer, you can just copy this text to
|
|
||||||
\fI~/.offlineimaprc\fR:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
[general]
|
|
||||||
accounts = Test
|
|
||||||
|
|
||||||
[Account Test]
|
|
||||||
localrepository = Local
|
|
||||||
remoterepository = Remote
|
|
||||||
|
|
||||||
[Repository Local]
|
|
||||||
type = Maildir
|
|
||||||
localfolders = ~/Test
|
|
||||||
|
|
||||||
[Repository Remote]
|
|
||||||
type = IMAP
|
|
||||||
remotehost = examplehost
|
|
||||||
remoteuser = jgoerzen
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
Now, edit the \fI~/.offlineimaprc\fR file with
|
|
||||||
your favorite editor. All you have to do is specify a directory
|
|
||||||
for your folders to be in (on the \fIlocalfolders\fR
|
|
||||||
line), the host name of your IMAP server (on the
|
|
||||||
\fIremotehost\fR line), and your login name on
|
|
||||||
the remote (on the \fIremoteuser\fR line). That's
|
|
||||||
it!
|
|
||||||
.PP
|
|
||||||
To run \fBOfflineIMAP\fR, you just have to say
|
|
||||||
\fBofflineimap\fR -- it will fire up, ask you for
|
|
||||||
a login password if necessary, synchronize your folders, 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 \fBOfflineIMAP\fR FIVE TIMES FASTER FOR JUST $19.95 (err, well,
|
|
||||||
$0), you have to read on!
|
|
||||||
.SH "INSTALLATION"
|
|
||||||
.PP
|
|
||||||
If you are reading this document via the "man" command, it is
|
|
||||||
likely
|
|
||||||
that you have no installation tasks to perform; your system
|
|
||||||
administrator 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 \fBOfflineIMAP\fR from
|
|
||||||
the \fBOfflineIMAP\fR
|
|
||||||
website <URL:http://software.complete.org/offlineimap/>\&.
|
|
||||||
.SS "PREREQUISITES"
|
|
||||||
.PP
|
|
||||||
In order to use \fBOfflineIMAP\fR, you need to have these conditions
|
|
||||||
satisfied:
|
|
||||||
.TP 0.2i
|
|
||||||
\(bu
|
|
||||||
Your mail server must support IMAP. Most Internet Service
|
|
||||||
Providers
|
|
||||||
and corporate networks do, and most operating systems
|
|
||||||
have an IMAP
|
|
||||||
implementation readily available.
|
|
||||||
.TP 0.2i
|
|
||||||
\(bu
|
|
||||||
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.
|
|
||||||
.TP 0.2i
|
|
||||||
\(bu
|
|
||||||
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 \fBOfflineIMAP\fR\&. If you do not have a mail reader
|
|
||||||
that supports Maildir, you can often install a local
|
|
||||||
IMAP server and point both \fBOfflineIMAP\fR and your mail
|
|
||||||
reader at it.
|
|
||||||
.SS "SYSTEM-WIDE INSTALLATION, DEBIAN"
|
|
||||||
.PP
|
|
||||||
If you are tracking Debian unstable, you may install
|
|
||||||
\fBOfflineIMAP\fR by simply running the following command as root:
|
|
||||||
.PP
|
|
||||||
\fBapt-get install offlineimap\fR
|
|
||||||
.PP
|
|
||||||
If you are not tracking Debian unstable, download the Debian .deb
|
|
||||||
package from the \fBOfflineIMAP\fR website <URL:http://software.complete.org/offlineimap/>
|
|
||||||
and then run \fBdpkg -i\fR to install the downloaded
|
|
||||||
package. Then, skip to [XRef to CONFIGURATION] below. You will type \fBofflineimap\fR to
|
|
||||||
invoke the program.
|
|
||||||
.SS "SYSTEM-WIDE INSTALLATION, OTHER"
|
|
||||||
.PP
|
|
||||||
Download the tar.gz version of the package from the
|
|
||||||
website <URL:http://software.complete.org/offlineimap/>\&.
|
|
||||||
Then run
|
|
||||||
these commands, making sure that you are the "root" user first:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
tar -zxvf offlineimap_x.y.z.tar.gz
|
|
||||||
cd offlineimap-x.y.z
|
|
||||||
python2.2 setup.py install
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
On some systems, you will need to use
|
|
||||||
\fBpython\fR instead of \fBpython2.2\fR\&.
|
|
||||||
Next, proceed to [XRef to CONFIGURATION] below. You will type \fBofflineimap\fR to
|
|
||||||
invoke the program.
|
|
||||||
.SS "SINGLE-ACCOUNT INSTALLATION"
|
|
||||||
.PP
|
|
||||||
Download the tar.gz version of the package from the
|
|
||||||
website <URL:http://software.complete.org/offlineimap/>\&.
|
|
||||||
Then run these commands:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
tar -zxvf offlineimap_x.y.z.tar.gz
|
|
||||||
cd offlineimap-x.y.z
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
When you want to run \fBOfflineIMAP\fR, you will issue the
|
|
||||||
\fBcd\fR command as above and then type
|
|
||||||
\fB\&./offlineimap.py\fR; there is no installation
|
|
||||||
step necessary.
|
|
||||||
.SH "CONFIGURATION"
|
|
||||||
.PP
|
|
||||||
\fBOfflineIMAP\fR is regulated by a configuration file that is normally
|
|
||||||
stored in \fI~/.offlineimaprc\fR\&. \fBOfflineIMAP\fR
|
|
||||||
ships with a file named \fIofflineimap.conf\fR
|
|
||||||
that you should copy to that location and then edit. This file is
|
|
||||||
vital to proper operation of the system; it sets everything you need
|
|
||||||
to run \fBOfflineIMAP\fR\&. Full documentation for the configuration file
|
|
||||||
is included within the sample file.
|
|
||||||
.PP
|
|
||||||
\fBOfflineIMAP\fR also ships a file named
|
|
||||||
\fIofflineimap.conf.minimal\fR 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 \fIofflineimap.conf\fR\&.
|
|
||||||
.SH "OPTIONS"
|
|
||||||
.PP
|
|
||||||
Most configuration is done via the configuration file. Nevertheless,
|
|
||||||
there are a few command-line options that you may set for
|
|
||||||
\fBOfflineIMAP\fR\&.
|
|
||||||
.TP
|
|
||||||
\fB-1\fR
|
|
||||||
Disable most multithreading operations and use
|
|
||||||
solely a single-connection
|
|
||||||
sync. This effectively sets the
|
|
||||||
\fImaxsyncaccounts\fR
|
|
||||||
and all \fImaxconnections\fR configuration file
|
|
||||||
variables to 1.
|
|
||||||
.TP
|
|
||||||
\fB-P \fIprofiledir\fB\fR
|
|
||||||
Sets \fBOfflineIMAP\fR into profile mode. The program
|
|
||||||
will create \fIprofiledir\fR
|
|
||||||
(it must not already exist). As it runs, Python profiling
|
|
||||||
information
|
|
||||||
about each thread is logged into profiledir. Please note: This option
|
|
||||||
is present for debugging and optimization only, and should NOT be used
|
|
||||||
unless you have a specific reason to do so. It will significantly
|
|
||||||
slow program performance, may reduce reliability, and can generate
|
|
||||||
huge amounts of data. You must use the \fB-1\fR option when
|
|
||||||
you use \fB-P\fR\&.
|
|
||||||
.TP
|
|
||||||
\fB-a \fIaccountlist\fB\fR
|
|
||||||
Overrides the \fIaccounts\fR option
|
|
||||||
in the \fIgeneral\fR section of the configuration
|
|
||||||
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.
|
|
||||||
.TP
|
|
||||||
\fB-c \fIconfigfile\fB\fR
|
|
||||||
Specifies a configuration file to use in lieu of
|
|
||||||
the default, \fI~/.offlineimaprc\fR\&.
|
|
||||||
.TP
|
|
||||||
\fB-d \fIdebugtype[,...]\fB\fR
|
|
||||||
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
|
|
||||||
\fB-1\fR to make the results more sensible.
|
|
||||||
|
|
||||||
\fB-d\fR requires one or more debugtypes,
|
|
||||||
separated by commas. These define what exactly will be
|
|
||||||
debugged, and include three options: \fIimap\fR,
|
|
||||||
\fImaildir\fR, and \fIthread\fR\&.
|
|
||||||
The \fIimap\fR
|
|
||||||
option will enable IMAP protocol stream and parsing debugging. Note
|
|
||||||
that the output may contain passwords, so take care to remove that
|
|
||||||
from the debugging output before sending it to anyone else. The
|
|
||||||
\fImaildir\fR option will enable debugging for
|
|
||||||
certain Maildir operations. And \fIthread\fR
|
|
||||||
will debug the threading model.
|
|
||||||
.TP
|
|
||||||
\fB-l \fIfilename\fB\fR
|
|
||||||
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.
|
|
||||||
.TP
|
|
||||||
\fB-o\fR
|
|
||||||
Run only once, ignoring all
|
|
||||||
\fIautorefresh\fR settings in the configuration
|
|
||||||
file.
|
|
||||||
.TP
|
|
||||||
\fB-h\fR
|
|
||||||
.TP
|
|
||||||
\fB--help\fR
|
|
||||||
Show summary of options.
|
|
||||||
.TP
|
|
||||||
\fB-u \fIinterface\fB\fR
|
|
||||||
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.
|
|
||||||
.SH "USER INTERFACES"
|
|
||||||
.PP
|
|
||||||
\fBOfflineIMAP\fR has a pluggable user interface system that lets you choose how the
|
|
||||||
program communicates information to you. There are two graphical
|
|
||||||
interfaces, two terminal interfaces, and two noninteractive interfaces
|
|
||||||
suitable for scripting or logging purposes. The
|
|
||||||
\fIui\fR option in the configuration file specifies
|
|
||||||
user interface preferences. The \fB-u\fR command-line
|
|
||||||
option can override the configuration file setting. The available
|
|
||||||
values for the configuration file or command-line are described
|
|
||||||
in this section.
|
|
||||||
.SS "TK.BLINKENLIGHTS"
|
|
||||||
.PP
|
|
||||||
Tk.Blinkenlights is an interface designed to be sleek, fun to watch, and
|
|
||||||
informative of the overall picture of what \fBOfflineIMAP\fR
|
|
||||||
is doing. I consider it to be the best general-purpose interface in
|
|
||||||
\fBOfflineIMAP\fR\&.
|
|
||||||
.PP
|
|
||||||
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.
|
|
||||||
.PP
|
|
||||||
Tk.Blinkenlights is the only user interface that has configurable
|
|
||||||
parameters; see the example \fIofflineimap.conf\fR
|
|
||||||
for more details.
|
|
||||||
.PP
|
|
||||||
Each light in the Blinkenlights interface represents a thread
|
|
||||||
of execution -- that is, a particular task that \fBOfflineIMAP\fR
|
|
||||||
is performing right now. The colors indicate what task
|
|
||||||
the particular thread is performing, and are as follows:
|
|
||||||
.TP
|
|
||||||
\fBBlack\fR
|
|
||||||
indicates that this light's thread has terminated; it will light up
|
|
||||||
again later when new threads start up. So, black indicates no
|
|
||||||
activity.
|
|
||||||
.TP
|
|
||||||
\fBRed (Meaning 1)\fR
|
|
||||||
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\&.
|
|
||||||
.TP
|
|
||||||
\fBGray\fR
|
|
||||||
indicates that the thread is establishing a new connection to the IMAP
|
|
||||||
server.
|
|
||||||
.TP
|
|
||||||
\fBPurple\fR
|
|
||||||
is the color of an account synchronization thread that is monitoring
|
|
||||||
the progress of the folders in that account (not generating any I/O).
|
|
||||||
.TP
|
|
||||||
\fBCyan\fR
|
|
||||||
indicates that the thread is syncing a folder.
|
|
||||||
.TP
|
|
||||||
\fBGreen\fR
|
|
||||||
means that a folder's message list is being loaded.
|
|
||||||
.TP
|
|
||||||
\fBBlue\fR
|
|
||||||
is the color of a message synchronization controller thread.
|
|
||||||
.TP
|
|
||||||
\fBOrange\fR
|
|
||||||
indicates that an actual message is being copied.
|
|
||||||
(We use fuchsia for fake messages.)
|
|
||||||
.TP
|
|
||||||
\fBRed (meaning 2)\fR
|
|
||||||
indicates that a message is being deleted.
|
|
||||||
.TP
|
|
||||||
\fBYellow / bright orange\fR
|
|
||||||
indicates that message flags are being added.
|
|
||||||
.TP
|
|
||||||
\fBPink / bright red\fR
|
|
||||||
indicates that message flags are being removed.
|
|
||||||
.TP
|
|
||||||
\fBRed / Black Flashing\fR
|
|
||||||
corresponds to the countdown timer that runs between
|
|
||||||
synchronizations.
|
|
||||||
.PP
|
|
||||||
The name of this interfaces derives from a bit of computer
|
|
||||||
history. Eric Raymond's Jargon File defines
|
|
||||||
\fIblinkenlights\fR, in part, as:
|
|
||||||
.sp
|
|
||||||
.RS
|
|
||||||
.PP
|
|
||||||
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.
|
|
||||||
.PP
|
|
||||||
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:
|
|
||||||
.PP
|
|
||||||
\fBACHTUNG! ALLES LOOKENSPEEPERS!\fR
|
|
||||||
.PP
|
|
||||||
Das computermachine ist nicht fuer gefingerpoken und mittengrabben.
|
|
||||||
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.
|
|
||||||
.RE
|
|
||||||
.SS "CURSES.BLINKENLIGHTS"
|
|
||||||
.PP
|
|
||||||
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.
|
|
||||||
.PP
|
|
||||||
Please see the Tk.Blinkenlights section above for more
|
|
||||||
information about the colors used in this interface.
|
|
||||||
.SS "TK.VERBOSEUI"
|
|
||||||
.PP
|
|
||||||
Tk.VerboseUI (formerly known as Tk.TkUI) is a graphical interface
|
|
||||||
that presents a variable-sized window. In the window, each
|
|
||||||
currently-executing thread has a section where its name and current
|
|
||||||
status are displayed. This interface is best suited to people running
|
|
||||||
on slower connections, as you get a lot of detail, but for fast
|
|
||||||
connections, the detail may go by too quickly to be useful. People
|
|
||||||
with fast connections may wish to use Tk.Blinkenlights instead.
|
|
||||||
.SS "TTY.TTYUI"
|
|
||||||
.PP
|
|
||||||
TTY.TTYUI interface is for people running in basic, non-color terminals. It
|
|
||||||
prints out basic status messages and is generally friendly to use on a console
|
|
||||||
or xterm.
|
|
||||||
.SS "NONINTERACTIVE.BASIC"
|
|
||||||
.PP
|
|
||||||
Noninteractive.Basic is designed for situations in which \fBOfflineIMAP\fR
|
|
||||||
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
|
|
||||||
automatically 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.
|
|
||||||
.SS "NONINTERACTIVE.QUIET"
|
|
||||||
.PP
|
|
||||||
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.
|
|
||||||
.SH "EXAMPLES"
|
|
||||||
.PP
|
|
||||||
Here are some example configurations for various situations.
|
|
||||||
Please e-mail any other examples you have that may be useful to
|
|
||||||
me.
|
|
||||||
.SS "MULTIPLE ACCOUNTS WITH MUTT"
|
|
||||||
.PP
|
|
||||||
This example shows you how to set up \fBOfflineIMAP\fR to
|
|
||||||
synchronize multiple accounts with the mutt mail reader.
|
|
||||||
.PP
|
|
||||||
Start by creating a directory to hold your folders by running
|
|
||||||
\fBmkdir ~/Mail\fR\&. Then, in your
|
|
||||||
\fI~/.offlineimaprc\fR, specify:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
accounts = Personal, Work
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
Make sure that you have both an
|
|
||||||
\fI[Account Personal]\fR
|
|
||||||
and an \fI[Account Work]\fR section. The
|
|
||||||
local repository for each account must have different
|
|
||||||
\fIlocalfolder\fR path names.
|
|
||||||
Also, make sure
|
|
||||||
to enable \fI[mbnames]\fR\&.
|
|
||||||
.PP
|
|
||||||
In each local repository section, write something like this:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
localfolders = ~/Mail/Personal
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
Finally, add these lines to your \fI~/.muttrc\fR:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
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
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
That's it!
|
|
||||||
.SS "UW-IMAPD AND REFERENCES"
|
|
||||||
.PP
|
|
||||||
Some users with a UW-IMAPD server need to use \fBOfflineIMAP\fR\&'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 \fIreference\fR of Mail, a \fInametrans\fR
|
|
||||||
that strips
|
|
||||||
the leading Mail/ off incoming folder names, and a
|
|
||||||
\fIfolderfilter\fR that
|
|
||||||
limits the folders synced to just three.
|
|
||||||
|
|
||||||
.nf
|
|
||||||
[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
|
|
||||||
.fi
|
|
||||||
.SS "PYTHONFILE CONFIGURATION FILE OPTION"
|
|
||||||
.PP
|
|
||||||
You can have \fBOfflineIMAP\fR
|
|
||||||
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.
|
|
||||||
.PP
|
|
||||||
In \fI~/.offlineimap.rc\fR, he adds these options:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
[general]
|
|
||||||
pythonfile=~/.offlineimap.py
|
|
||||||
[Repository foo]
|
|
||||||
foldersort=mycmp
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
Then, the \fI~/.offlineimap.py\fR file will
|
|
||||||
contain:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
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
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
This code snippet illustrates how the \fIfoldersort\fR
|
|
||||||
option can be customized with a Python function from the
|
|
||||||
\fIpythonfile\fR to always synchronize certain
|
|
||||||
folders first.
|
|
||||||
.SH "ERRORS"
|
|
||||||
.PP
|
|
||||||
If you get one of some frequently-encountered or confusing errors,
|
|
||||||
please check this section.
|
|
||||||
.SS "UID VALIDITY PROBLEM FOR FOLDER"
|
|
||||||
.PP
|
|
||||||
IMAP servers use a unique ID (UID) to refer to a specific message.
|
|
||||||
This number is guaranteed to be unique to a particular message
|
|
||||||
\fBforever\fR\&.
|
|
||||||
No other message in the same folder will ever get the same
|
|
||||||
UID. UIDs are an integral part of \fBOfflineIMAP\fR\&'s synchronization
|
|
||||||
scheme; they are used to match up messages on your computer to
|
|
||||||
messages on the server.
|
|
||||||
.PP
|
|
||||||
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
|
|
||||||
\fBOfflineIMAP\fR might still have the UIDs from the previous folder by the
|
|
||||||
same name stored. \fBOfflineIMAP\fR will detect this condition and skip the
|
|
||||||
folder. This is GOOD, because it prevents data loss.
|
|
||||||
.PP
|
|
||||||
You can fix it by removing your local folder and cache data. For
|
|
||||||
instance, if your folders are under \fI~/Folders\fR
|
|
||||||
and the folder with the problem is INBOX, you'd type this:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
rm -r ~/Folders/INBOX
|
|
||||||
rm -r ~/.offlineimap/Account-\fIAccountName\fR
|
|
||||||
rm -r ~/.offlineimap/Repository-\fIRepositoryName\fR
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
(Of course, replace AccountName and RepositoryName
|
|
||||||
with the names as specified
|
|
||||||
in \fI~/.offlineimaprc\fR).
|
|
||||||
.PP
|
|
||||||
Next time you run \fBOfflineIMAP\fR, 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.
|
|
||||||
.PP
|
|
||||||
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. \fBOfflineIMAP\fR is incompatible with such servers.
|
|
||||||
Using \fBOfflineIMAP\fR with them will not destroy any mail, but at the same time,
|
|
||||||
it will not actually synchronize it either. (\fBOfflineIMAP\fR will detect
|
|
||||||
this condition and abort prior to synchronization.)
|
|
||||||
.PP
|
|
||||||
This question comes up frequently on the
|
|
||||||
\fBOfflineIMAP\fR
|
|
||||||
mailing list <URL:http://lists.complete.org/offlineimap@complete.org/>\&. You can find a
|
|
||||||
detailed
|
|
||||||
discussion <URL:http://lists.complete.org/offlineimap@complete.org/2003/04/msg00012.html.gz> of the problem there.
|
|
||||||
.SH "CONFORMING TO"
|
|
||||||
.TP 0.2i
|
|
||||||
\(bu
|
|
||||||
Internet Message Access Protocol version 4rev1 (IMAP 4rev1) as
|
|
||||||
specified in RFC2060 and RFC3501
|
|
||||||
.TP 0.2i
|
|
||||||
\(bu
|
|
||||||
CRAM-MD5 as specified in RFC2195
|
|
||||||
.TP 0.2i
|
|
||||||
\(bu
|
|
||||||
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>\&.
|
|
||||||
.TP 0.2i
|
|
||||||
\(bu
|
|
||||||
Standard Python 2.2.1 as implemented on POSIX-compliant systems.
|
|
||||||
.SH "NOTES"
|
|
||||||
.SS "DELETING LOCAL FOLDERS"
|
|
||||||
.PP
|
|
||||||
\fBOfflineIMAP\fR 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 \fBOfflineIMAP\fR, remember to also remove your local status
|
|
||||||
cache (\fI~/.offlineimap\fR by default). Otherwise, \fBOfflineIMAP\fR 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)
|
|
||||||
.SS "MULTIPLE INSTANCES"
|
|
||||||
.PP
|
|
||||||
\fBOfflineIMAP\fR 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 \fBOfflineIMAP\fR is already running. If you need
|
|
||||||
to schedule synchronizations, please use the
|
|
||||||
\fIautorefresh\fR settings rather than cron.
|
|
||||||
Alternatively, you can set a separate \fImetadata\fR
|
|
||||||
directory for each instance.
|
|
||||||
.SS "COPYING MESSAGES BETWEEN FOLDERS"
|
|
||||||
.PP
|
|
||||||
Normally, when you copy a message between folders or add a new message
|
|
||||||
to a folder locally, \fBOfflineIMAP\fR
|
|
||||||
will just do the right thing. However, sometimes this can be tricky
|
|
||||||
-- if your IMAP server does not provide the SEARCH command, or does
|
|
||||||
not return something useful, \fBOfflineIMAP\fR
|
|
||||||
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.
|
|
||||||
\fBOfflineIMAP\fR makes sure that the message was properly uploaded before deleting it,
|
|
||||||
so there should be no risk of data loss.
|
|
||||||
.SS "MAILING LIST"
|
|
||||||
.PP
|
|
||||||
There is an OfflineIMAP mailing list available.
|
|
||||||
To subscribe, send the text "Subscribe" in the subject of a mail to
|
|
||||||
offlineimap-request@complete.org. To post, send the message to
|
|
||||||
offlineimap@complete.org. Archives are available at
|
|
||||||
<URL:http://lists.complete.org/offlineimap@complete.org/>\&.
|
|
||||||
.SS "BUGS"
|
|
||||||
.PP
|
|
||||||
Reports of bugs should be reported online at the
|
|
||||||
\fBOfflineIMAP\fR homepage.
|
|
||||||
Debian users are encouraged to instead use the
|
|
||||||
Debian
|
|
||||||
bug-tracking system.
|
|
||||||
.SH "UPGRADING TO 4.0"
|
|
||||||
.PP
|
|
||||||
If you are upgrading from a version of \fBOfflineIMAP\fR prior to
|
|
||||||
3.99.12, you will find that you will get errors when
|
|
||||||
\fBOfflineIMAP\fR starts up (relating to ConfigParser or
|
|
||||||
AccountHashGenerator) and the
|
|
||||||
configuration 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.
|
|
||||||
.PP
|
|
||||||
First thing you need to do is stop any running \fBOfflineIMAP\fR
|
|
||||||
instance, making sure first that it's synced all your mail.
|
|
||||||
Then, modify your
|
|
||||||
\fI~/.offlineimaprc\fR file. You'll need to
|
|
||||||
split up each account section (make sure that it now starts
|
|
||||||
with "Account ") into two Repository sections (one for the
|
|
||||||
local side and another for the remote side.) See the files
|
|
||||||
\fIofflineimap.conf.minimal\fR and
|
|
||||||
\fIofflineimap.conf\fR in the distribution if
|
|
||||||
you need more assistance.
|
|
||||||
.PP
|
|
||||||
\fBOfflineIMAP\fR\&'s status directory area has also changed.
|
|
||||||
Therefore, you should delete everything in ~/.offlineimap as
|
|
||||||
well as your local mail folders.
|
|
||||||
.PP
|
|
||||||
When you start up \fBOfflineIMAP\fR 4.0, it will re-download all
|
|
||||||
your mail from the server and then you can continue using it
|
|
||||||
like normal.
|
|
||||||
.SH "COPYRIGHT"
|
|
||||||
.PP
|
|
||||||
OfflineIMAP, and this manual, are Copyright (C) 2002 - 2006 John Goerzen.
|
|
||||||
.PP
|
|
||||||
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.
|
|
||||||
.PP
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
.PP
|
|
||||||
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
|
|
||||||
.PP
|
|
||||||
imaplib.py comes from the Python dev tree and is licensed under
|
|
||||||
the GPL-compatible PSF license as stated in the file
|
|
||||||
\fICOPYRIGHT\fR in the \fBOfflineIMAP\fR
|
|
||||||
distribution.
|
|
||||||
.SH "AUTHOR"
|
|
||||||
.PP
|
|
||||||
\fBOfflineIMAP\fR, 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.
|
|
||||||
.PP
|
|
||||||
\fBOfflineIMAP\fR may be downloaded, and information found, from its
|
|
||||||
homepage <URL:http://software.complete.org/offlineimap>\&.
|
|
||||||
.SH "SEE ALSO"
|
|
||||||
.PP
|
|
||||||
\fBmutt\fR(1),
|
|
||||||
\fBpython\fR(1)
|
|
||||||
.SH "HISTORY"
|
|
||||||
.PP
|
|
||||||
Detailed history may be found in the file ChangeLog in the
|
|
||||||
\fBOfflineIMAP\fR distribution. Feature and bug histories may be
|
|
||||||
found in the file debian/changelog which, despite its name, is
|
|
||||||
not really Debian-specific. This section provides a large
|
|
||||||
overview.
|
|
||||||
.PP
|
|
||||||
Development on \fBOfflineIMAP\fR 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.
|
|
||||||
.PP
|
|
||||||
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.
|
|
||||||
.PP
|
|
||||||
Version 3.0.0 was released on July 11, 2002, and introduced
|
|
||||||
modular user interfaces and the first GUI interface for
|
|
||||||
\fBOfflineIMAP\fR\&. This manual also was introduced with 3.0.0,
|
|
||||||
along with many command-line options. Version 3.1.0 was
|
|
||||||
released on July 21, adding the Noninteractive user
|
|
||||||
interfaces, profiling support, and several bugfixes. 3.2.0
|
|
||||||
was released on July 24, adding support for the Blinkenlights
|
|
||||||
GUI interface. \fBOfflineIMAP\fR entered maintenance mode for
|
|
||||||
awhile, as it had reached a feature-complete milestone in my
|
|
||||||
mind.
|
|
||||||
.PP
|
|
||||||
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 architectural changes were made.
|
|
||||||
.PP
|
|
||||||
4.0.0 was released on July 18, 2003, including the ability to
|
|
||||||
synchronize 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.
|
|
Loading…
Reference in New Issue
Block a user