]> code.delx.au - offlineimap/blob - offlineimap/head/offlineimap.1
/offlineimap/head: changeset 360
[offlineimap] / offlineimap / head / offlineimap.1
1 .\" This manpage has been automatically generated by docbook2man
2 .\" from a DocBook document. This tool can be found at:
3 .\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
4 .\" Please send any bug reports, improvements, comments, patches,
5 .\" etc. to Steve Cheng <steve@ggi-project.org>.
6 .TH "OFFLINEIMAP" "1" "04 March 2003" "John Goerzen" "OfflineIMAP Manual"
7
8 .SH NAME
9 OfflineIMAP \- Powerful IMAP/Maildir synchronization and reader support
10 .SH SYNOPSIS
11
12 \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-o\fR ] [ \fB-u \fIinterface\fB\fR ]
13
14
15 \fBofflineimap\fR \fB-h\fR | \fB--help\fR
16
17 .SH "DESCRIPTION"
18 .PP
19 \fBOfflineIMAP\fR is a tool to simplify your e-mail
20 reading. With \fBOfflineIMAP\fR, you can read the same mailbox
21 from multiple computers. You get a current copy of your
22 messages on each computer, and changes you make one place will be
23 visible on all other systems. For instance, you can delete a message
24 on your home computer, and it will appear deleted on your work
25 computer as well. \fBOfflineIMAP\fR is also useful if you want to
26 use a mail reader that does not have IMAP support, has poor IMAP
27 support, or does not provide disconnected operation.
28 .PP
29 \fBOfflineIMAP\fR is \fBFAST\fR; it synchronizes
30 my two accounts with over 50 folders in 3 seconds. Other
31 similar tools might take over a minute, and achieve a
32 less-reliable result. Some mail readers can take over 10
33 minutes to do the same thing, and some don't even support it
34 at all. Unlike other mail tools, \fBOfflineIMAP\fR features a
35 multi-threaded synchronization algorithm that can dramatically
36 speed up performance in many situations by synchronizing
37 several different things simultaneously.
38 .PP
39 \fBOfflineIMAP\fR is \fBFLEXIBLE\fR; you can
40 customize which folders are synced via regular expressions,
41 lists, or Python expressions; a versatile and comprehensive
42 configuration file is used to control behavior; two user
43 interfaces are built-in; fine-tuning of synchronization
44 performance is possible; internal or external automation is
45 supported; SSL and PREAUTH tunnels are both supported; offline
46 (or "unplugged") reading is supported; and esoteric IMAP
47 features are supported to ensure compatibility with the widest
48 variety of IMAP servers.
49 .PP
50 \fBOfflineIMAP\fR is \fBSAFE\fR; it uses an
51 algorithm designed to prevent mail loss at all costs. Because
52 of the design of this algorithm, even programming errors
53 should not result in loss of mail. I am so confident in the
54 algorithm that I use my own personal and work accounts for
55 testing of \fBOfflineIMAP\fR pre-release, development, and beta
56 releases. Of course, legally speaking, \fBOfflineIMAP\fR comes
57 with no warranty, so I am not responsible if this turns out
58 to be wrong.
59 .SS "METHOD OF OPERATION"
60 .PP
61 \fBOfflineIMAP\fR operates by maintaining a hierarchy of
62 mail folders in Maildir format locally. Your own mail
63 reader will read mail from this tree, and need never know
64 that the mail comes from IMAP. \fBOfflineIMAP\fR will detect
65 changes to the mail folders on your IMAP server and your own
66 computer and bi-directionally synchronize them, copying,
67 marking, and deleting messages as necessary.
68 .SH "QUICK START"
69 .PP
70 If you have already installed \fBOfflineIMAP\fR system-wide,
71 or your system adminstrator has done that for you, your task
72 for setting up \fBOfflineIMAP\fR for the first time is quite
73 simple. You just need to set up your configuration file, make
74 your folder directory, and run it!
75 .PP
76 You can quickly set up your configuration file. The distribution
77 includes a file \fIofflineimap.conf.minimal\fR
78 (Debian users
79 may find this at
80 \fI/usr/share/doc/offlineimap/examples/offlineimap.conf.minimal\fR) that is a basic example of setting of \fBOfflineIMAP\fR. You can
81 simply copy this file into your home directory and name it
82 \fI.offlineimaprc\fR (note the leading period). A
83 command such as \fBcp offlineimap.conf.minimal ~/.offlineimaprc\fR will do it. Or, if you prefer, you can just copy this text to
84 \fI~/.offlineimaprc\fR:
85
86 .nf
87 [general]
88 accounts = Test
89
90 [Test]
91 localfolders = ~/Test
92 remotehost = examplehost
93 remoteuser = jgoerzen
94 .fi
95 .PP
96 Now, edit the \fI~/.offlineimaprc\fR file with
97 your favorite editor. All you have to do is specify a directory
98 for your folders to be in (on the \fIlocalfolders\fR
99 line), the host name of your IMAP server (on the
100 \fIremotehost\fR line), and your login name on
101 the remote (on the \fIremoteuser\fR line). That's
102 it!
103 .PP
104 To run \fBOfflineIMAP\fR, you just have to say
105 \fBofflineimap\fR -- it will fire up, ask you for
106 a login password if necessary, synchronize your folders, and exit.
107 See? You can just throw away the rest of this finely-crafted,
108 perfectly-honed manual! Of course, if you want to see how you can
109 make \fBOfflineIMAP\fR FIVE TIMES FASTER FOR JUST $19.95 (err, well,
110 $0), you have to read on!
111 .SH "INSTALLATION"
112 .PP
113 If you are reading this document via the "man" command, it is
114 likely
115 that you have no installation tasks to perform; your system
116 administrator has already installed it. If you need to install it
117 yourself, you have three options: a system-wide installation with
118 Debian, system-wide installation with other systems, and a single-user
119 installation. You can download the latest version of \fBOfflineIMAP\fR from
120 the \fBOfflineIMAP\fR
121 website <URL:http://quux.org/devel/offlineimap/>.
122 .SS "PREREQUISITES"
123 .PP
124 In order to use \fBOfflineIMAP\fR, you need to have these conditions
125 satisfied:
126 .TP 0.2i
127 \(bu
128 Your mail server must support IMAP. Most Internet Service
129 Providers
130 and corporate networks do, and most operating systems
131 have an IMAP
132 implementation readily available.
133 .TP 0.2i
134 \(bu
135 You must have Python version 2.2.1 or above installed.
136 If you are
137 running on Debian GNU/Linux, this requirement will automatically be
138 taken care of for you. If you do not have Python already, check with
139 your system administrator or operating system vendor; or, download it from
140 the Python website <URL:http://www.python.org/>.
141 If you intend to use the Tk interface, you must have Tkinter
142 (python-tk) installed. If you intend to use the SSL interface, your
143 Python must have been built with SSL support.
144 .TP 0.2i
145 \(bu
146 Have a mail reader that supports the Maildir mailbox format. Most
147 modern mail readers have this support built-in, so you can choose from
148 a wide variety of mail servers. This format is also known as the
149 "qmail" format, so any mail reader compatible with it will work with
150 \fBOfflineIMAP\fR.
151 .SS "SYSTEM-WIDE INSTALLATION, DEBIAN"
152 .PP
153 If you are tracking Debian unstable, you may install
154 \fBOfflineIMAP\fR by simply running the following command as root:
155 .PP
156 \fBapt-get install offlineimap\fR
157 .PP
158 If you are not tracking Debian unstable, download the Debian .deb
159 package from the \fBOfflineIMAP\fR website <URL:http://quux.org/devel/offlineimap/>
160 and then run \fBdpkg -i\fR to install the downloaded
161 package. Then, skip to [XRef to CONFIGURATION] below. You will type \fBofflineimap\fR to
162 invoke the program.
163 .SS "SYSTEM-WIDE INSTALLATION, OTHER"
164 .PP
165 Download the tar.gz version of the package from the
166 website <URL:http://quux.org/devel/offlineimap/>.
167 Then run
168 these commands, making sure that you are the "root" user first:
169
170 .nf
171 tar -zxvf offlineimap_x.y.z.tar.gz
172 cd offlineimap-x.y.z
173 python2.2 setup.py install
174 .fi
175 .PP
176 On some systems, you will need to use
177 \fBpython\fR instead of \fBpython2.2\fR.
178 Next, proceed to [XRef to CONFIGURATION] below. You will type \fBofflineimap\fR to
179 invoke the program.
180 .SS "SINGLE-ACCOUNT INSTALLATION"
181 .PP
182 Download the tar.gz version of the package from the
183 website <URL:http://quux.org/devel/offlineimap/>.
184 Then run these commands:
185
186 .nf
187 tar -zxvf offlineimap_x.y.z.tar.gz
188 cd offlineimap-x.y.z
189 .fi
190 .PP
191 When you want to run \fBOfflineIMAP\fR, you will issue the
192 \fBcd\fR command as above and then type
193 \fB./offlineimap.py\fR; there is no installation
194 step necessary.
195 .SH "CONFIGRUATION"
196 .PP
197 \fBOfflineIMAP\fR is regulated by a configuration file that is normally
198 stored in \fI~/.offlineimaprc\fR. \fBOfflineIMAP\fR
199 ships with a file named \fIofflineimap.conf\fR
200 that you should copy to that location and then edit. This file is
201 vital to proper operation of the system; it sets everything you need
202 to run \fBOfflineIMAP\fR. Full documentation for the configuration file
203 is included within the sample file.
204 .PP
205 \fBOfflineIMAP\fR also ships a file named
206 \fIofflineimap.conf.minimal\fR that you can also try.
207 It's useful if you want to get started with
208 the most basic feature set, and you can read about other features
209 later with \fIofflineimap.conf\fR.
210 .SH "OPTIONS"
211 .PP
212 Most configuration is done via the configuration file. Nevertheless,
213 there are a few command-line options that you may set for
214 \fBOfflineIMAP\fR.
215 .TP
216 \fB-1\fR
217 Disable most multithreading operations and use
218 solely a single-connection
219 sync. This effectively sets the \fImaxsyncaccounts\fR
220 and all \fImaxconnections\fR configuration file
221 variables to 1.
222 .TP
223 \fB-P \fIprofiledir\fB\fR
224 Sets \fBOfflineIMAP\fR into profile mode. The program
225 will create \fIprofiledir\fR
226 (it must not already exist). As it runs, Python profiling
227 information
228 about each thread is logged into profiledir. Please note: This option
229 is present for debugging and optimization only, and should NOT be used
230 unless you have a specific reason to do so. It will significantly
231 slow program performance, may reduce reliability, and can generate
232 huge amounts of data. You must use the \fB-1\fR option when
233 you use \fB-P\fR.
234 .TP
235 \fB-a \fIaccountlist\fB\fR
236 Overrides the \fIaccounts\fR option
237 in the \fIgeneral\fR section of the configuration
238 file. You might use this to exclude certain accounts, or to sync
239 some accounts that you normally prefer not to. Separate the
240 accounts by commas, and use no embedded spaces.
241 .TP
242 \fB-c \fIconfigfile\fB\fR
243 Specifies a configuration file to use in lieu of
244 the default, \fI~/.offlineimaprc\fR.
245 .TP
246 \fB-d \fIdebugtype[,...]\fB\fR
247 Enables debugging for OfflineIMAP. This is useful if
248 you are trying to track down a malfunction or figure out what is going
249 on under the hood. I suggest that you use this with
250 \fB-1\fR to make the results more sensible.
251
252 \fB-d\fR requires one or more debugtypes,
253 separated by commas. These define what exactly will be
254 debugged, and include two options: \fIimap\fR
255 and \fImaildir\fR. The \fIimap\fR
256 option will enable IMAP protocol stream and parsing debugging. Note
257 that the output may contain passwords, so take care to remove that
258 from the debugging output before sending it to anyone else. The
259 \fImaildir\fR option will enable debugging for
260 certain Maildir operations.
261 .TP
262 \fB-o\fR
263 Run only once, ignoring all
264 \fIautorefresh\fR settings in the configuration
265 file.
266 .TP
267 \fB-h\fR
268 .TP
269 \fB--help\fR
270 Show summary of options.
271 .TP
272 \fB-u \fIinterface\fB\fR
273 Specifies an alternative user interface module
274 to use. This overrides the defailt specified in the
275 configuration file. The pre-defined options are listed in
276 the User Interfaces section.
277 .SH "USER INTERFACES"
278 .PP
279 \fBOfflineIMAP\fR has a pluggable user interface system that lets you choose how the
280 program communicates information to you. There are two graphical
281 interfaces, two terminal interfaces, and two noninteractive interfaces
282 suitable for scripting or logging purposes. The
283 \fIui\fR option in the configuration file specifies
284 user interface preferences. The \fB-u\fR command-line
285 option can override the configuration file setting. The available
286 values for the configuration file or command-line are described
287 in this section.
288 .SS "TK.BLINKENLIGHTS"
289 .PP
290 Tk.Blinkenlights is an interface designed to be sleek, fun to watch, and
291 informative of the overall picture of what \fBOfflineIMAP\fR
292 is doing. I consider it to be the best general-purpose interface in
293 \fBOfflineIMAP\fR.
294 .PP
295 Tk.Blinkenlights contains, by default, a small window with a row of
296 LEDs, a small log, and a row of command buttons.
297 The total size of the window is
298 very small, so it uses little desktop space, yet it is quite
299 functional. The optional, toggleable, log shows more
300 detail about what is happening and is color-coded to match the color
301 of the lights.
302 .PP
303 Tk.Blinkenlights is the only user interface that has configurable
304 parameters; see the example \fIofflineimap.conf\fR
305 for more details.
306 .PP
307 Each light in the Blinkenlights interface represents a thread
308 of execution -- that is, a particular task that \fBOfflineIMAP\fR
309 is performing right now. The colors indicate what task
310 the particular thread is performing, and are as follows:
311 .TP
312 \fBBlack\fR
313 indicates that this light's thread has terminated; it will light up
314 again later when new threads start up. So, black indicates no
315 activity.
316 .TP
317 \fBRed (Meaning 1)\fR
318 is the color of the main program's thread, which basically does
319 nothing but monitor the others. It might remind you of HAL 9000 in
320 2001.
321 .TP
322 \fBGray\fR
323 indicates that the thread is establishing a new connection to the IMAP
324 server.
325 .TP
326 \fBPurple\fR
327 is the color of an account synchronization thread that is monitoring
328 the progress of the folders in that account (not generating any I/O).
329 .TP
330 \fBCyan\fR
331 indicates that the thread is syncing a folder.
332 .TP
333 \fBGreen\fR
334 means that a folder's message list is being loaded.
335 .TP
336 \fBBlue\fR
337 is the color of a message synchronization controller thread.
338 .TP
339 \fBOrange\fR
340 indicates that an actual message is being copied.
341 (We use fuschia for fake messages.)
342 .TP
343 \fBRed (meaning 2)\fR
344 indicates that a message is being deleted.
345 .TP
346 \fBYellow / bright orange\fR
347 indicates that message flags are being added.
348 .TP
349 \fBPink / bright red\fR
350 indicates that message flags are being removed.
351 .TP
352 \fBRed / Black Flashing\fR
353 corresponds to the countdown timer that runs between
354 synchronizations.
355 .PP
356 The name of this interfaces derives from a bit of computer
357 history. Eric Raymond's Jargon File defines
358 \fIblinkenlights\fR, in part, as:
359 .sp
360 .RS
361 .PP
362 Front-panel diagnostic
363 lights on a computer, esp. a dinosaur. Now that dinosaurs are rare,
364 this term usually refers to status lights on a modem, network hub, or
365 the like.
366 .PP
367 This term derives from the last word of the famous blackletter-Gothic
368 sign in mangled pseudo-German that once graced about half the computer
369 rooms in the English-speaking world. One version ran in its entirety as
370 follows:
371 .PP
372 \fBACHTUNG! ALLES LOOKENSPEEPERS!\fR
373 .PP
374 Das computermachine ist nicht fuer gefingerpoken und mittengrabben.
375 Ist easy schnappen der springenwerk, blowenfusen und poppencorken
376 mit spitzensparken. Ist nicht fuer gewerken bei das dumpkopfen.
377 Das rubbernecken sichtseeren keepen das cotten-pickenen hans in das
378 pockets muss; relaxen und watchen das blinkenlichten.
379 .RE
380 .SS "CURSES.BLINKENLIGHTS"
381 .PP
382 Curses.Blinkenlights is an interface very similar to Tk.Blinkenlights,
383 but is designed to be run in a console window (an xterm, Linux virtual
384 terminal, etc.) Since it doesn't have access to graphics, it isn't
385 quite as pretty, but it still gets the job done.
386 .PP
387 Please see the Tk.Blinkenlights section above for more
388 information about the colors used in this interface.
389 .SS "TK.VERBOSEUI"
390 .PP
391 Tk.VerboseUI (formerly known as Tk.TkUI) is a graphical interface
392 that presents a variable-sized window. In the window, each
393 currently-executing thread has a section where its name and current
394 status are displayed. This interface is best suited to people running
395 on slower connections, as you get a lot of detail, but for fast
396 connections, the detail may go by too quickly to be useful. People
397 with fast connections may wish to use Tk.Blinkenlights instead.
398 .SS "TTY.TTYUI"
399 .PP
400 TTY.TTYUI interface is for people running in basic, non-color terminals. It
401 prints out basic status messages and is generally friendly to use on a console
402 or xterm.
403 .SS "NONINTERACTIVE.BASIC"
404 .PP
405 Noninteractive.Basic is designed for situations in which \fBOfflineIMAP\fR
406 will be run non-attended and the status of its execution will be
407 logged. You might use it, for instance, to have the system run
408 automatically and
409 e-mail you the results of the synchronization. This user interface
410 is not capable of reading a password from the keyboard; account
411 passwords must be specified using one of the configuration file options.
412 .SS "NONINTERACTIVE.QUIET"
413 .PP
414 Noninteractive.Quiet is designed for non-attended running in situations
415 where normal status messages are not desired. It will output nothing
416 except errors and serious warnings. Like Noninteractive.Basic,
417 this user interface
418 is not capable of reading a password from the keyboard; account
419 passwords must be specified using one of the configuration file options.
420 .SH "EXAMPLES"
421 .PP
422 Here are some example configurations for various situations.
423 Please e-mail any other examples you have that may be useful to
424 me.
425 .SS "MULTIPLE ACCOUNTS WITH MUTT"
426 .PP
427 This example shows you how to set up \fBOfflineIMAP\fR to
428 synchronize multiple accounts with the mutt mail reader.
429 .PP
430 Start by creating a directory to hold your folders by running
431 \fBmkdir ~/Mail\fR. Then, in your
432 \fI~/.offlineimaprc\fR, specify:
433
434 .nf
435 accounts = Personal, Work
436 .fi
437 .PP
438 Make sure that you have both a \fI[Personal]\fR
439 and a \fI[Work]\fR section, each with different
440 \fIlocalfolder\fR path names. Also, make sure
441 to enable \fI[mbnames]\fR.
442 .PP
443 In each account section, write something like this:
444
445 .nf
446 localfolders = ~/Mail/Personal
447 .fi
448 .PP
449 Finally, add these lines to your \fI~/.muttrc\fR:
450
451 .nf
452 source ~/path-to-mbnames-muttrc-mailboxes
453 folder-hook Personal set from="youremail@personal.com"
454 folder-hook Work set from="youremail@work.com"
455 set mbox_type=Maildir
456 set folder=$HOME/Mail
457 spoolfile=+Personal/INBOX
458 .fi
459 .PP
460 That's it!
461 .SS "UW-IMAPD AND REFERENCES"
462 .PP
463 Some users with a UW-IMAPD server need to use \fBOfflineIMAP\fR's
464 "reference" feature to get at their mailboxes, specifying a reference
465 of "~/Mail" or "#mh/" depending on the configuration. The below
466 configuration from docwhat@gerf.org
467 shows using a \fIreference\fR of Mail, a \fInametrans\fR
468 that strips
469 the leading Mail/ off incoming folder names, and a
470 \fIfolderfilter\fR that
471 limits the folders synced to just three.
472
473 .nf
474 [Gerf]
475 localfolders = ~/Mail
476 remotehost = gerf.org
477 ssl = yes
478 remoteuser = docwhat
479 reference = Mail
480 # Trims off the preceeding Mail on all the folder names.
481 nametrans = lambda foldername: \\
482 re.sub('^Mail/', '', foldername)
483 # Yeah, you have to mention the Mail dir, even though it
484 # would seem intuitive that reference would trim it.
485 folderfilter = lambda foldername: foldername in [
486 'Mail/INBOX',
487 'Mail/list/zaurus-general',
488 'Mail/list/zaurus-dev',
489 ]
490 maxconnections = 1
491 holdconnectionopen = no
492 .fi
493 .SS "PYTHONFILE CONFIGURATION FILE OPTION"
494 .PP
495 You can have \fBOfflineIMAP\fR
496 load up a Python file before evaluating the
497 configuration file options that are Python expressions. This example
498 is based on one supplied by Tommi Virtanen for this feature.
499 .PP
500 In \fI~/.offlineimap.rc\fR, he adds these options:
501
502 .nf
503 [general]
504 pythonfile=~/.offlineimap.py
505 [foo]
506 foldersort=mycmp
507 .fi
508 .PP
509 Then, the \fI~/.offlineimap.py\fR file will
510 contain:
511
512 .nf
513 prioritized = ['INBOX', 'personal', 'announce', 'list']
514
515 def mycmp(x, y):
516 for prefix in prioritized:
517 if x.startswith(prefix):
518 return -1
519 elif y.startswith(prefix):
520 return +1
521 return cmp(x, y)
522
523 def test_mycmp():
524 import os, os.path
525 folders=os.listdir(os.path.expanduser('~/data/mail/tv@hq.yok.utu.fi'))
526 folders.sort(mycmp)
527 print folders
528 .fi
529 .PP
530 This code snippet illustrates how the \fIfoldersort\fR
531 option can be customized with a Python function from the
532 \fIpythonfile\fR to always synchronize certain
533 folders first.
534 .SH "ERRORS"
535 .PP
536 If you get one of some frequently-encountered or confusing errors,
537 please check this section.
538 .SS "UID VALIDITY PROBLEM FOR FOLDER"
539 .PP
540 IMAP servers use a unique ID (UID) to refer to a specific message.
541 This number is guaranteed to be unique to a particular message
542 \fBforever\fR.
543 No other message in the same folder will ever get the same
544 UID. UIDs are an integral part of \fBOfflineIMAP\fR's synchronization
545 scheme; they are used to match up messages on your computer to
546 messages on the server.
547 .PP
548 Sometimes, the UIDs on the server might get reset. Usually this will
549 happen if you delete and then recreate a folder. When you create a
550 folder, the server will often start the UID back from 1. But
551 \fBOfflineIMAP\fR might still have the UIDs from the previous folder by the
552 same name stored. \fBOfflineIMAP\fR will detect this condition and skip the
553 folder. This is GOOD, because it prevents data loss.
554 .PP
555 You can fix it by removing your local folder and cache data. For
556 instance, if your folders are under \fI~/Folders\fR
557 and the folder with the problem is INBOX, you'd type this:
558
559 .nf
560 rm -r ~/Folders/INBOX
561 rm -r ~/.offlineimap/AccountName/INBOX
562 .fi
563 .PP
564 (Of course, replace AccountName with the account name as specified
565 in \fI~/.offlineimaprc\fR).
566 .PP
567 Next time you run \fBOfflineIMAP\fR, it will re-download
568 the folder with the
569 new UIDs. Note that the procedure specified above will lose any local
570 changes made to the folder.
571 .PP
572 Some IMAP servers are broken and do not support UIDs properly. If you
573 continue to get this error for all your folders even after performing
574 the above procedure, it is likely that your IMAP server falls into
575 this category. \fBOfflineIMAP\fR is incompatible with such servers.
576 Using \fBOfflineIMAP\fR with them will not destroy any mail, but at the same time,
577 it will not actually synchronize it either. (\fBOfflineIMAP\fR will detect
578 this condition and abort prior to synchronization.)
579 .SH "OTHER FREQUENTLY ASKED QUESTIONS"
580 .PP
581 There are some other FAQs that might not fit into another section
582 of the document, so they are discussed here.
583 .TP
584 \fBWhat platforms does OfflineIMAP run on?\fR
585 It should run on most platforms supported by Python, which are quite a
586 few.
587 .TP
588 \fBI'm using Mutt. Other IMAP sync programs require me to use "set maildir_trash=yes". Do I need to do that with OfflineIMAP?\fR
589 No. \fBOfflineIMAP\fR is smart enough to figure out message deletion without this extra
590 crutch. You'll get the best results if you don't use this setting, in
591 fact.
592 .TP
593 \fBHow do I specify the names of my folders?\fR
594 You do not need to. \fBOfflineIMAP\fR is smart
595 enough to automatically figure out what folders are present
596 on the IMAP server and synchronize them. You can use the
597 \fIfolderfilter\fR and \fIfoldertrans\fR
598 configuration file options to request certain folders and rename them
599 as they come in if you like.
600 .TP
601 \fBHow can I prevent certain folders from being synced?\fR
602 Use the \fIfolderfilter\fR option in the configuration file.
603 .TP
604 \fBHow can I add or delete a folder?\fR
605 \fBOfflineIMAP\fR does not currently provide this feature, but if you create a new
606 folder on the IMAP server, it will be created locally automatically.
607 .TP
608 \fBAre there any other warnings that I should be aware of?\fR
609 Yes; see the Notes section below.
610 .TP
611 \fBWhat is the mailbox name recorder (mbnames) for?\fR
612 Some mail readers, such as Mutt, are not capable
613 of automatically determining the names of your mailboxes.
614 \fBOfflineIMAP\fR can help these programs by writing the names
615 of the folders ni a format you specify. See the example
616 \fIofflineimap.conf\fR for details.
617 .TP
618 \fBCan I synchronize multiple accounts with OfflineIMAP?\fR
619 Sure. Just name them all in the
620 \fIaccounts\fR line in the \fIgeneral\fR
621 section of the configuration file, and add a per-account section
622 for each one.
623 .TP
624 \fBDoes OfflineIMAP support POP?\fR
625 No. POP is not robust enough to do a completely reliable
626 multi-machine synchronization like \fBOfflineIMAP\fR can do. \fBOfflineIMAP\fR
627 will not support it.
628 .TP
629 \fBDoes OfflineIMAP support mailbox formats other than Maildir?\fR
630 Not at present. There is no technical reason not to; just no
631 demand yet. Maildir is a superior format anyway.
632 .TP
633 \fB[technical] Why are your Maildir message filenames so huge?\fR
634 \fBOfflineIMAP\fR has two relevant principles: 1) never modifying your
635 messages in any way and 2) ensuring 100% reliable synchronizations.
636 In order to do a reliable sync, \fBOfflineIMAP\fR
637 must have a way to
638 uniquely identify each e-mail. Three pieces of information are
639 required to do this: your account name, the folder name, and the
640 message UID. The account name can be calculated from the path in
641 which your messages are. The folder name can usually be as well, BUT
642 some mail clients move messages between folders by simply moving the
643 file, leaving the name intact.
644
645 So, \fBOfflineIMAP\fR must store both a UID folder ID. The folder ID is
646 necessary so \fBOfflineIMAP\fR can detect a message moved to a different
647 folder. \fBOfflineIMAP\fR stores the UID (U= number) and an md5sum of the
648 foldername (FMD5= number) to facilitate this.
649 .TP
650 \fBWhat is the speed of OfflineIMAP's sync?\fR
651 OfflineIMAP
652 versions 2.0 and above contain a multithreaded system. A good way to
653 experiment is by setting \fImaxsyncaccounts\fR to 3 and \fImaxconnections\fR to 3
654 in each account clause.
655
656 This lets OfflineIMAP open up multiple connections simultaneously.
657 That will let it process multiple folders and messages at once. In
658 most cases, this will increase performance of the sync.
659
660 Don't set the number too high. If you do that, things might actually
661 slow down as your link gets saturated. Also, too many connections can
662 cause mail servers to have excessive load. Administrators might take
663 unkindly to this, and the server might bog down. There are many
664 variables in the optimal setting; experimentation may help.
665
666 An informal benchmark yields these results for my setup:
667 .RS
668 .TP 0.2i
669 \(bu
670 10 minutes with MacOS X Mail.app "manual cache"
671 .TP 0.2i
672 \(bu
673 5 minutes with GNUS agent sync
674 .TP 0.2i
675 \(bu
676 20 seconds with OfflineIMAP 1.x
677 .TP 0.2i
678 \(bu
679 9 seconds with OfflineIMAP 2.x
680 .TP 0.2i
681 \(bu
682 3 seconds with OfflineIMAP 3.x "cold start"
683 .TP 0.2i
684 \(bu
685 2 seconds with OfflineIMAP 3.x "held connection"
686 .RE
687 .SH "CONFORMING TO"
688 .TP 0.2i
689 \(bu
690 Internet Message Access Protocol version 4rev1 (IMAP 4rev1) as
691 specified in RFC2060
692 .TP 0.2i
693 \(bu
694 CRAM-MD5 as specified in RFC2195
695 .TP 0.2i
696 \(bu
697 Maildir as specified in
698 the Maildir manpage <URL:http://www.qmail.org/qmail-manual-html/man5/maildir.html> and
699 the qmail website <URL:http://cr.yp.to/proto/maildir.html>.
700 .TP 0.2i
701 \(bu
702 Standard Python 2.2.1 as implemented on POSIX-compliant systems.
703 .SH "NOTES"
704 .SS "DELETING LOCAL FOLDERS"
705 .PP
706 \fBOfflineIMAP\fR does a two-way synchronization. That is, if you
707 make a change to the mail on the server, it will be propogated to your
708 local copy, and vise-versa. Some people might think that it would be
709 wise to just delete all their local mail folders periodically. If you
710 do this with \fBOfflineIMAP\fR, remember to also remove your local status
711 cache (\fI~/.offlineimap\fR by default). Otherwise, \fBOfflineIMAP\fR will take
712 this as an intentional deletion of many messages and will interpret
713 your action as requesting them to be deleted from the server as well.
714 (If you don't understand this, don't worry; you probably won't
715 encounter this situation)
716 .SS "MULTIPLE INSTANCES"
717 .PP
718 \fBOfflineIMAP\fR is not designed to have several instances (for instance, a cron job and an interactive invocation) run over the same
719 mailbox simultaneously. It will perform a check on startup and
720 abort if another \fBOfflineIMAP\fR is already running. If you need
721 to schedule synchronizations, please use the
722 \fIautorefresh\fR settings rather than cron.
723 Alternatively, you can set a separate \fImetadata\fR
724 directory for each instance.
725 .SS "COPYING MESSAGES BETWEEN FOLDERS"
726 .PP
727 Normally, when you copy a message between folders or add a new message
728 to a folder locally, \fBOfflineIMAP\fR
729 will just do the right thing. However, sometimes this can be tricky
730 -- if your IMAP server does not provide the SEARCH command, or does
731 not return something useful, \fBOfflineIMAP\fR
732 cannot determine the new UID of the message. So, in these rare
733 instances, OfflineIMAP will upload the message to the IMAP server and
734 delete it from your local folder. Then, on your next sync, the
735 message will be re-downloaded with the proper UID.
736 \fBOfflineIMAP\fR makes sure that the message was properly uploaded before deleting it,
737 so there should be no risk of data loss.
738 .SS "USE WITH EVOLUTION"
739 .PP
740 \fBOfflineIMAP\fR can work with Evolution. To do so, first configure
741 your \fBOfflineIMAP\fR account to have
742 \fBsep = /\fR in its configuration. Then, configure
743 Evolution with the
744 "Maildir-format mail directories" server type. For the path, you will need to
745 specify the name of the top-level folder
746 \fBinside\fR your \fBOfflineIMAP\fR storage location.
747 You're now set!
748 .SS "USE WITH KMAIL"
749 .PP
750 At this time, I believe that \fBOfflineIMAP\fR is not compatible
751 with KMail. KMail cannot work in any mode other than to move
752 all messages out of all folders immediately, which (besides being annoying
753 and fundamentally broken) is incompatible with \fBOfflineIMAP\fR.
754 .SS "MAILING LIST"
755 .PP
756 There is an OfflineIMAP mailing list available.
757 To subscribe, send the text "Subscribe" in the subject of a mail to
758 offlineimap-request@complete.org. To post, send the message to
759 offlineimap@complete.org.
760 .SS "BUGS"
761 .PP
762 Reports of bugs should be sent via e-mail to the
763 \fBOfflineIMAP\fR bug-tracking system (BTS) at
764 offlineimap@bugs.complete.org or submitted online using
765 the web interface <URL:http://bugs.complete.org/>.
766 .PP
767 The Web site also lists all current bugs, where you can check their
768 status or contribute to fixing them.
769 .SH "COPYRIGHT"
770 .PP
771 OfflineIMAP, and this manual, are Copyright (C) 2002, 2003 John Goerzen.
772 .PP
773 This program is free software; you can redistribute it and/or modify
774 it under the terms of the GNU General Public License as published by
775 the Free Software Foundation; version 2 of the License.
776 .PP
777 This program is distributed in the hope that it will be useful,
778 but WITHOUT ANY WARRANTY; without even the implied warranty of
779 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
780 GNU General Public License for more details.
781 .PP
782 You should have received a copy of the GNU General Public License
783 along with this program; if not, write to the Free Software
784 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
785 .PP
786 imaplib.py comes from the Python dev tree and is licensed under
787 the GPL-compatible PSF license as stated in the file
788 \fICOPYRIGHT\fR in the \fBOfflineIMAP\fR
789 distribution.
790 .SH "AUTHOR"
791 .PP
792 \fBOfflineIMAP\fR, its libraries, documentation, and all included files, except where
793 noted, was written by John Goerzen <jgoerzen@complete.org> and
794 copyright is held as stated in the COPYRIGHT section.
795 .PP
796 \fBOfflineIMAP\fR may be downloaded, and information found, from its
797 homepage via either Gopher <URL:gopher://quux.org/1/devel/offlineimap>
798 or HTTP <URL:http://quux.org/devel/offlineimap>.
799 .PP
800 \fBOfflineIMAP\fR may also be downloaded using Subversion. Additionally,
801 the distributed tar.gz may be updated with a simple "svn update"
802 command; it is ready to go. For information on getting OfflineIMAP
803 with Subversion, please visit the
804 complete.org Subversion page <URL:http://svn.complete.org/>.
805 .SH "SEE ALSO"
806 .PP
807 \fBmutt\fR(1),
808 \fBpython\fR(1)