/offlineimap/head: changeset 327

Bumped version number to 3.99.6
This commit is contained in:
jgoerzen 2003-01-07 04:37:27 +01:00
parent f601a9850c
commit 2d0ef8af4b
10 changed files with 985 additions and 591 deletions

View File

@ -1,3 +1,376 @@
------------------------------------------------------------------------
rev 326: jgoerzen | 2003-01-06 15:30:37 -0600 (Mon, 06 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/debian/changelog
M /offlineimap/head/offlineimap.conf
A /offlineimap/head/offlineimap.conf.minimal
Added minimal config file; noted this in changelog
------------------------------------------------------------------------
rev 325: jgoerzen | 2003-01-06 15:15:22 -0600 (Mon, 06 Jan 2003) | 4 lines
Changed paths:
M /offlineimap/head/debian/copyright
M /offlineimap/head/offlineimap/CustomConfig.py
M /offlineimap/head/offlineimap/accounts.py
M /offlineimap/head/offlineimap/imapserver.py
M /offlineimap/head/offlineimap/init.py
M /offlineimap/head/offlineimap/mbnames.py
M /offlineimap/head/offlineimap/ui/Curses.py
M /offlineimap/head/offlineimap/ui/Tk.py
M /offlineimap/head/offlineimap/ui/detector.py
M /offlineimap/head/offlineimap.conf
Touched up the isactive tests.
Added defaults for many more options.
------------------------------------------------------------------------
rev 324: jgoerzen | 2003-01-06 14:37:19 -0600 (Mon, 06 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/debian/changelog
M /offlineimap/head/debian/control
M /offlineimap/head/manual.html
M /offlineimap/head/manual.pdf
M /offlineimap/head/manual.ps
M /offlineimap/head/manual.txt
M /offlineimap/head/offlineimap.1
M /offlineimap/head/offlineimap.conf
Updated documentation and information with information about new settings
------------------------------------------------------------------------
rev 323: jgoerzen | 2003-01-06 14:21:46 -0600 (Mon, 06 Jan 2003) | 8 lines
Changed paths:
M /offlineimap/head/offlineimap/ui/TTY.py
Due to possibly having one account sleep while another is reading a
password, and other tricky situations, support for nice updating and
cancelling of a sleep in TTY.TTYUI has been removed.
However, this is not going to be a huge problem because the new Curses
Blinkenlights interface has this support, and does it a lot better than
TTY.TTYUI ever could have.
------------------------------------------------------------------------
rev 322: jgoerzen | 2003-01-06 14:18:09 -0600 (Mon, 06 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/offlineimap/ui/Curses.py
Curses interface now can sleep, too. Woohoo.
------------------------------------------------------------------------
rev 321: jgoerzen | 2003-01-06 12:18:06 -0600 (Mon, 06 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/offlineimap/ui/Tk.py
More fine-tunning. Looks like using the grid manager is helping out.
------------------------------------------------------------------------
rev 320: jgoerzen | 2003-01-06 12:00:43 -0600 (Mon, 06 Jan 2003) | 10 lines
Changed paths:
M /offlineimap/head/offlineimap/ui/Tk.py
Reworked the canvas.
Before, problem was the label and buttons to the right of the lights would
make the window too wide. When the button got added, the window would get
even wider. That was because the canvas would not shrink.
My workaround is to use a separate canvas for each light. Seems to be OK
here....
------------------------------------------------------------------------
rev 319: jgoerzen | 2003-01-06 11:31:19 -0600 (Mon, 06 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/offlineimap/ui/Tk.py
Working better now.
------------------------------------------------------------------------
rev 318: jgoerzen | 2003-01-06 11:14:17 -0600 (Mon, 06 Jan 2003) | 3 lines
Changed paths:
M /offlineimap/head/offlineimap/ui/Tk.py
More visual tweaking. The Button doesn't seem to be working well, so I'm
going to try a MenuButton.
------------------------------------------------------------------------
rev 317: jgoerzen | 2003-01-06 11:04:40 -0600 (Mon, 06 Jan 2003) | 5 lines
Changed paths:
M /offlineimap/head/offlineimap/ui/Blinkenlights.py
M /offlineimap/head/offlineimap/ui/Tk.py
Basic Tk.Blinkenlights structure completed. Need to fine-tune the display.
Sleeping API added to Blinkenlights base class.
------------------------------------------------------------------------
rev 316: jgoerzen | 2003-01-06 10:19:00 -0600 (Mon, 06 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/debian/changelog
M /offlineimap/head/offlineimap.conf
Noted a few things for the docs
------------------------------------------------------------------------
rev 315: jgoerzen | 2003-01-06 10:15:15 -0600 (Mon, 06 Jan 2003) | 5 lines
Changed paths:
M /offlineimap/head/offlineimap/ui/Tk.py
Fixed up the VerboseUI for new account system. All that really needed
updating with the "Sync immediately" button, to cope with syncing different
accounts at different times. It's better now.
------------------------------------------------------------------------
rev 314: jgoerzen | 2003-01-06 09:58:29 -0600 (Mon, 06 Jan 2003) | 16 lines
Changed paths:
M /offlineimap/head/offlineimap/threadutil.py
M /offlineimap/head/offlineimap/ui/Blinkenlights.py
M /offlineimap/head/offlineimap/ui/Curses.py
M /offlineimap/head/offlineimap/ui/debuglock.py
More locking updates.
Introduced a new MultiLock to threadutil. This lock will let a single
thread acquire the same lock more than once, keeping track of how many times
this happens, and will release the actual lock only when the lock's
lock count gets back to zero.
By using MultiLock, various functions in Curses.py and Blinkenlights.py no
longer need to pass around to other functions a parameter indicating whether
or not a lock should be obtained. This was a large cause of complexity and
errors, which is now eliminated.
Everything seems to be working properly wrt locking at this point. The
Curses.Blinkenlights interface has achieved basic working functionality.
------------------------------------------------------------------------
rev 313: jgoerzen | 2003-01-06 08:41:14 -0600 (Mon, 06 Jan 2003) | 3 lines
Changed paths:
M /offlineimap/head/offlineimap/mbnames.py
Just to be sure, since it could be called by multiple threads, genmbnames
will not lock itself.
------------------------------------------------------------------------
rev 312: jgoerzen | 2003-01-06 08:40:23 -0600 (Mon, 06 Jan 2003) | 6 lines
Changed paths:
M /offlineimap/head/offlineimap/accounts.py
M /offlineimap/head/offlineimap/mbnames.py
M /offlineimap/head/offlineimap/syncmaster.py
Updated the mbnames recorder to bring it back up-to-date with the new
account-centric system. It will now gather reports from account sync
threads, and when it has all that it's supposed to, it'll write out the
file.
------------------------------------------------------------------------
rev 311: jgoerzen | 2003-01-05 23:11:00 -0600 (Sun, 05 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/offlineimap/ui/Curses.py
Fixed a problem that prevented it from working on the console.
------------------------------------------------------------------------
rev 310: jgoerzen | 2003-01-05 23:07:16 -0600 (Sun, 05 Jan 2003) | 6 lines
Changed paths:
M /offlineimap/head/offlineimap/ui/Blinkenlights.py
M /offlineimap/head/offlineimap/ui/Curses.py
A /offlineimap/head/offlineimap/ui/debuglock.py
Added some temporary debug code to help weed out a few race conditions with
the curses Blinkenlights interface. Think I've finally got it. I'm leaving
the debugging code in for now, though, to help in case there are future
problems.
------------------------------------------------------------------------
rev 309: jgoerzen | 2003-01-05 16:54:59 -0600 (Sun, 05 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/offlineimap/accounts.py
M /offlineimap/head/offlineimap/ui/Blinkenlights.py
M /offlineimap/head/offlineimap/ui/Curses.py
More progress with bug fixes and locking
------------------------------------------------------------------------
rev 308: jgoerzen | 2003-01-05 11:07:58 -0600 (Sun, 05 Jan 2003) | 8 lines
Changed paths:
M /offlineimap/head/offlineimap/accounts.py
M /offlineimap/head/offlineimap/folder/Base.py
M /offlineimap/head/offlineimap/folder/IMAP.py
M /offlineimap/head/offlineimap/folder/LocalStatus.py
M /offlineimap/head/offlineimap/folder/Maildir.py
M /offlineimap/head/offlineimap/repository/LocalStatus.py
M /offlineimap/head/offlineimap/repository/Maildir.py
M /offlineimap/head/offlineimap/ui/Curses.py
M /offlineimap/head/offlineimap/ui/UIBase.py
More progress at debugging. The curses blinkenlights is now working well,
though it still has an occasional tendency to corrupt the light display with
comments from the log. I suspect a locking problem -- need to be more
strict with iolock I suspect.
Updated various modules to register the threads' account names, etc.
------------------------------------------------------------------------
rev 307: jgoerzen | 2003-01-05 00:01:17 -0600 (Sun, 05 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/offlineimap/ui/Blinkenlights.py
M /offlineimap/head/offlineimap/ui/Curses.py
M /offlineimap/head/offlineimap/ui/UIBase.py
Starting to work now.
------------------------------------------------------------------------
rev 306: jgoerzen | 2003-01-04 23:55:37 -0600 (Sat, 04 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/offlineimap/ui/Blinkenlights.py
M /offlineimap/head/offlineimap/ui/Curses.py
Removed debug prints
------------------------------------------------------------------------
rev 305: jgoerzen | 2003-01-04 23:50:01 -0600 (Sat, 04 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/offlineimap/ui/Blinkenlights.py
M /offlineimap/head/offlineimap/ui/Curses.py
M /offlineimap/head/offlineimap/ui/UIBase.py
Believed to be somewhat working now
------------------------------------------------------------------------
rev 304: jgoerzen | 2003-01-04 20:11:46 -0600 (Sat, 04 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/offlineimap.1
Clarified copyright statement
------------------------------------------------------------------------
rev 303: jgoerzen | 2003-01-04 20:07:40 -0600 (Sat, 04 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/offlineimap/ui/Curses.py
Removed password echo for debugging
------------------------------------------------------------------------
rev 302: jgoerzen | 2003-01-04 20:07:00 -0600 (Sat, 04 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/offlineimap/ui/Curses.py
Now capable of actually reading passwords.
------------------------------------------------------------------------
rev 301: jgoerzen | 2003-01-04 19:51:35 -0600 (Sat, 04 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/offlineimap/ui/Blinkenlights.py
M /offlineimap/head/offlineimap/ui/Curses.py
M /offlineimap/head/offlineimap/ui/__init__.py
M /offlineimap/head/offlineimap/ui/detector.py
M /offlineimap/head/offlineimap/version.py
Nominally-working Blinkenlights interface for Curses!
------------------------------------------------------------------------
rev 300: jgoerzen | 2003-01-04 16:51:17 -0600 (Sat, 04 Jan 2003) | 2 lines
Changed paths:
A /offlineimap/head/offlineimap/ui/Blinkenlights.py
A /offlineimap/head/offlineimap/ui/Curses.py
M /offlineimap/head/offlineimap/ui/__init__.py
Beginnings of support for a curses-based Blinkenlights.
------------------------------------------------------------------------
rev 299: jgoerzen | 2003-01-04 15:35:36 -0600 (Sat, 04 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/offlineimap/ui/Tk.py
Started breaking Blinkenlights out into a base class.
------------------------------------------------------------------------
rev 298: jgoerzen | 2003-01-03 16:58:04 -0600 (Fri, 03 Jan 2003) | 2 lines
Changed paths:
D /offlineimap/head/offlineimap/test.py
Removed this (not a real part of the program)
------------------------------------------------------------------------
rev 297: jgoerzen | 2003-01-03 16:57:46 -0600 (Fri, 03 Jan 2003) | 5 lines
Changed paths:
A /offlineimap/head/debian/changelog
A /offlineimap/head/offlineimap/CustomConfig.py
A /offlineimap/head/offlineimap/accounts.py
M /offlineimap/head/offlineimap/init.py
M /offlineimap/head/offlineimap/mbnames.py
M /offlineimap/head/offlineimap/syncmaster.py
A /offlineimap/head/offlineimap/test.py
M /offlineimap/head/offlineimap/threadutil.py
M /offlineimap/head/offlineimap/ui/Noninteractive.py
M /offlineimap/head/offlineimap/ui/UIBase.py
M /offlineimap/head/offlineimap/ui/detector.py
* Changed to a more account-centric behavior. The refresh time is now
a per-account variable. Implemented new account classes. User
interfaces must now be updated to take advantage of this.
------------------------------------------------------------------------
rev 296: jgoerzen | 2003-01-03 16:57:20 -0600 (Fri, 03 Jan 2003) | 2 lines
Changed paths:
D /offlineimap/head/debian/changelog
Fixing error
------------------------------------------------------------------------
rev 295: jgoerzen | 2003-01-02 19:08:10 -0600 (Thu, 02 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/debian/changelog
M /offlineimap/head/offlineimap/ui/Tk.py
Got Tk working again. Woohoo.
------------------------------------------------------------------------
rev 294: jgoerzen | 2003-01-02 19:01:41 -0600 (Thu, 02 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/offlineimap/folder/LocalStatus.py
M /offlineimap/head/offlineimap/ui/Tk.py
Updated with various fixes
------------------------------------------------------------------------
rev 293: jgoerzen | 2003-01-02 14:05:14 -0600 (Thu, 02 Jan 2003) | 6 lines
Changed paths:
M /offlineimap/head/debian/changelog
M /offlineimap/head/offlineimap/imaputil.py
* Now properly handles folder names that contain parenthesis. Used
patch from Kyler Laird in
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=173895.
Closes: #173895.
------------------------------------------------------------------------
rev 292: jgoerzen | 2003-01-02 14:00:23 -0600 (Thu, 02 Jan 2003) | 2 lines
Changed paths:
M /offlineimap/head/debian/changelog
M /offlineimap/head/offlineimap/ui/Tk.py
Beginning of work to make it work with a threaded Tcl/Tk Tkinter.
------------------------------------------------------------------------
rev 291: jgoerzen | 2002-12-03 10:26:03 -0600 (Tue, 03 Dec 2002) | 2 lines
Changed paths:
M /offlineimap/head/ChangeLog
This is 3.99.5
------------------------------------------------------------------------ ------------------------------------------------------------------------
rev 290: jgoerzen | 2002-12-03 10:25:06 -0600 (Tue, 03 Dec 2002) | 2 lines rev 290: jgoerzen | 2002-12-03 10:25:06 -0600 (Tue, 03 Dec 2002) | 2 lines
Changed paths: Changed paths:

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python2.2 #!/usr/bin/env python2.2
# Startup from system-wide installation # Startup from system-wide installation
# Copyright (C) 2002 John Goerzen # Copyright (C) 2002, 2003 John Goerzen
# <jgoerzen@complete.org> # <jgoerzen@complete.org>
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
@ -18,4 +18,4 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
from offlineimap import init from offlineimap import init
init.startup('3.99.5') init.startup('3.99.6')

View File

@ -1,5 +1,5 @@
<!-- Creator : groff version 1.18.1 --> <!-- Creator : groff version 1.18.1 -->
<!-- CreationDate: Mon Jan 6 14:35:15 2003 --> <!-- CreationDate: Mon Jan 6 15:32:30 2003 -->
<html> <html>
<head> <head>
<meta name="generator" content="groff -Thtml, see www.gnu.org"> <meta name="generator" content="groff -Thtml, see www.gnu.org">
@ -314,6 +314,12 @@ location and then edit. This file is vital to proper
operation of the system; it sets everything you need to run operation of the system; it sets everything you need to run
<b>OfflineIMAP.</b> Full documentation for the configuration <b>OfflineIMAP.</b> Full documentation for the configuration
file is included within the sample file.</p> file is included within the sample file.</p>
<!-- INDENTATION -->
<p><b>OfflineIMAP</b> also ships a file named
<i>offlineimap.conf.minimal</i> that you can also try.
It&rsquo;s useful if you want to get started with the most
basic feature set, and you can read about other features
later with <i>offlineimap.conf.</i></p>
</td> </td>
</table> </table>
<a name="OPTIONS"></a> <a name="OPTIONS"></a>
@ -333,12 +339,12 @@ Nevertheless, there are a few options that you may set for
<table width="100%" border=0 rules="none" frame="void" <table width="100%" border=0 rules="none" frame="void"
cols="4" cellspacing="0" cellpadding="0"> cols="4" cellspacing="0" cellpadding="0">
<tr valign="top" align="left"> <tr valign="top" align="left">
<td width="11%"></td> <td width="13%"></td>
<td width="2%"> <td width="2%">
<p><b>&minus;1</b></p> <p><b>&minus;1</b></p>
</td> </td>
<td width="7%"></td> <td width="5%"></td>
<td width="77%"> <td width="77%">
<p>Disable all multithreading operations and use solely a <p>Disable all multithreading operations and use solely a
@ -453,12 +459,12 @@ operations.</p>
<table width="100%" border=0 rules="none" frame="void" <table width="100%" border=0 rules="none" frame="void"
cols="4" cellspacing="0" cellpadding="0"> cols="4" cellspacing="0" cellpadding="0">
<tr valign="top" align="left"> <tr valign="top" align="left">
<td width="13%"></td> <td width="11%"></td>
<td width="2%"> <td width="2%">
<p><b>&minus;o</b></p> <p><b>&minus;o</b></p>
</td> </td>
<td width="5%"></td> <td width="7%"></td>
<td width="77%"> <td width="77%">
<p>Run only once, ignoring any autorefresh setting in the <p>Run only once, ignoring any autorefresh setting in the
@ -571,12 +577,12 @@ are as follows:</p>
<table width="100%" border=0 rules="none" frame="void" <table width="100%" border=0 rules="none" frame="void"
cols="4" cellspacing="0" cellpadding="0"> cols="4" cellspacing="0" cellpadding="0">
<tr valign="top" align="left"> <tr valign="top" align="left">
<td width="13%"></td> <td width="11%"></td>
<td width="7%"> <td width="7%">
<p><b>Black</b></p> <p><b>Black</b></p>
</td> </td>
<td width="1%"></td> <td width="2%"></td>
<td width="77%"> <td width="77%">
<p>indicates that this light&rsquo;s thread has terminated; <p>indicates that this light&rsquo;s thread has terminated;
@ -605,14 +611,13 @@ remind you of HAL 9000 in <i>2001.</i></p>
</table> </table>
<!-- TABS --> <!-- TABS -->
<table width="100%" border=0 rules="none" frame="void" <table width="100%" border=0 rules="none" frame="void"
cols="4" cellspacing="0" cellpadding="0"> cols="3" cellspacing="0" cellpadding="0">
<tr valign="top" align="left"> <tr valign="top" align="left">
<td width="11%"></td> <td width="11%"></td>
<td width="8%"> <td width="10%">
<p><b>Gray</b></p> <p><b>Gray</b></p>
</td> </td>
<td width="1%"></td>
<td width="77%"> <td width="77%">
<p>indicates that the thread is establishing a new <p>indicates that the thread is establishing a new
@ -620,11 +625,10 @@ connection to the IMAP server.</p>
</td> </td>
<tr valign="top" align="left"> <tr valign="top" align="left">
<td width="11%"></td> <td width="11%"></td>
<td width="8%"> <td width="10%">
<p><b>Purple</b></p> <p><b>Purple</b></p>
</td> </td>
<td width="1%"></td>
<td width="77%"> <td width="77%">
<p>is the color of an account synchronization thread that <p>is the color of an account synchronization thread that
@ -633,22 +637,20 @@ is monitoring the progress of the folders in that account
</td> </td>
<tr valign="top" align="left"> <tr valign="top" align="left">
<td width="11%"></td> <td width="11%"></td>
<td width="8%"> <td width="10%">
<p><b>Cyan</b></p> <p><b>Cyan</b></p>
</td> </td>
<td width="1%"></td>
<td width="77%"> <td width="77%">
<p>indicates that the thread is syncing a folder.</p> <p>indicates that the thread is syncing a folder.</p>
</td> </td>
<tr valign="top" align="left"> <tr valign="top" align="left">
<td width="11%"></td> <td width="11%"></td>
<td width="8%"> <td width="10%">
<p><b>Green</b></p> <p><b>Green</b></p>
</td> </td>
<td width="1%"></td>
<td width="77%"> <td width="77%">
<p>means that a folder&rsquo;s message list is being <p>means that a folder&rsquo;s message list is being
@ -656,11 +658,10 @@ loaded.</p>
</td> </td>
<tr valign="top" align="left"> <tr valign="top" align="left">
<td width="11%"></td> <td width="11%"></td>
<td width="8%"> <td width="10%">
<p><b>Blue</b></p> <p><b>Blue</b></p>
</td> </td>
<td width="1%"></td>
<td width="77%"> <td width="77%">
<p>is the color of a message synchronization controller <p>is the color of a message synchronization controller
@ -668,11 +669,10 @@ thread.</p>
</td> </td>
<tr valign="top" align="left"> <tr valign="top" align="left">
<td width="11%"></td> <td width="11%"></td>
<td width="8%"> <td width="10%">
<p><b>Orange</b></p> <p><b>Orange</b></p>
</td> </td>
<td width="1%"></td>
<td width="77%"> <td width="77%">
<p>indicates that an actual message is being copied.</p> <p>indicates that an actual message is being copied.</p>
@ -697,13 +697,14 @@ thread.</p>
</table> </table>
<!-- TABS --> <!-- TABS -->
<table width="100%" border=0 rules="none" frame="void" <table width="100%" border=0 rules="none" frame="void"
cols="3" cellspacing="0" cellpadding="0"> cols="4" cellspacing="0" cellpadding="0">
<tr valign="top" align="left"> <tr valign="top" align="left">
<td width="11%"></td> <td width="11%"></td>
<td width="10%"> <td width="8%">
<p><b>Yellow</b></p> <p><b>Yellow</b></p>
</td> </td>
<td width="1%"></td>
<td width="77%"> <td width="77%">
<p>(bright orange) indicates that message flags are being <p>(bright orange) indicates that message flags are being
@ -711,10 +712,11 @@ added.</p>
</td> </td>
<tr valign="top" align="left"> <tr valign="top" align="left">
<td width="11%"></td> <td width="11%"></td>
<td width="10%"> <td width="8%">
<p><b>Pink</b></p> <p><b>Pink</b></p>
</td> </td>
<td width="1%"></td>
<td width="77%"> <td width="77%">
<p>(bright red) indicates that message flags are being <p>(bright red) indicates that message flags are being
@ -1397,11 +1399,11 @@ connection&quot;</p>
cols="4" cellspacing="0" cellpadding="0"> cols="4" cellspacing="0" cellpadding="0">
<tr valign="top" align="left"> <tr valign="top" align="left">
<td width="11%"></td> <td width="11%"></td>
<td width="2%"> <td width="1%">
<p>&bull;</p> <p>&bull;</p>
</td> </td>
<td width="7%"></td> <td width="8%"></td>
<td width="77%"> <td width="77%">
<p>Internet Message Access Protocol version 4rev1 (IMAP <p>Internet Message Access Protocol version 4rev1 (IMAP
@ -1409,11 +1411,11 @@ connection&quot;</p>
</td> </td>
<tr valign="top" align="left"> <tr valign="top" align="left">
<td width="11%"></td> <td width="11%"></td>
<td width="2%"> <td width="1%">
<p>&bull;</p> <p>&bull;</p>
</td> </td>
<td width="7%"></td> <td width="8%"></td>
<td width="77%"> <td width="77%">
<p>CRAM-MD5 as specified in RFC2195</p> <p>CRAM-MD5 as specified in RFC2195</p>
@ -1423,12 +1425,12 @@ connection&quot;</p>
<table width="100%" border=0 rules="none" frame="void" <table width="100%" border=0 rules="none" frame="void"
cols="4" cellspacing="0" cellpadding="0"> cols="4" cellspacing="0" cellpadding="0">
<tr valign="top" align="left"> <tr valign="top" align="left">
<td width="11%"></td> <td width="13%"></td>
<td width="1%"> <td width="1%">
<p>&bull;</p> <p>&bull;</p>
</td> </td>
<td width="8%"></td> <td width="7%"></td>
<td width="77%"> <td width="77%">
<p>Maildir as specified in <p>Maildir as specified in
@ -1436,12 +1438,12 @@ http://www.qmail.org/qmail-manual-html/man5/maildir.html and
http://cr.yp.to/proto/maildir.html.</p> http://cr.yp.to/proto/maildir.html.</p>
</td> </td>
<tr valign="top" align="left"> <tr valign="top" align="left">
<td width="11%"></td> <td width="13%"></td>
<td width="1%"> <td width="1%">
<p>&bull;</p> <p>&bull;</p>
</td> </td>
<td width="8%"></td> <td width="7%"></td>
<td width="77%"> <td width="77%">
<p>Standard Python 2.2.1 as implemented on POSIX-compliant <p>Standard Python 2.2.1 as implemented on POSIX-compliant

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -126,111 +126,116 @@ CONFIGURATION
thing you need to run OfflineIMAP. Full documentation for the configu- thing you need to run OfflineIMAP. Full documentation for the configu-
ration file is included within the sample file. 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 OPTIONS
Most configuration is done via the configuration file. Nevertheless, Most configuration is done via the configuration file. Nevertheless,
there are a few options that you may set for OfflineIMAP. there are a few options that you may set for OfflineIMAP.
-1 Disable all multithreading operations and use solely a single- -1 Disable all multithreading operations and use solely a single-
thread sync. This effectively sets the maxsyncaccounts and all thread sync. This effectively sets the maxsyncaccounts and all
maxconnections configuration file variables to 1. maxconnections configuration file variables to 1.
-P profiledir -P profiledir
Sets OfflineIMAP into profile mode. The program will create Sets OfflineIMAP into profile mode. The program will create
profiledir (it must not already exist). As it runs, Python pro- profiledir (it must not already exist). As it runs, Python pro-
filing information about each thread is logged into profiledir. filing information about each thread is logged into profiledir.
Please note: This option is present for debugging and optimiza- Please note: This option is present for debugging and optimiza-
tion only, and should NOT be used unless you have a specific tion only, and should NOT be used unless you have a specific
reason to do so. It will significantly slow program perfor- reason to do so. It will significantly slow program perfor-
mance, may reduce reliability, and can generate huge amounts of mance, may reduce reliability, and can generate huge amounts of
data. You must use the -1 option when you use -P. data. You must use the -1 option when you use -P.
-a accountlist -a accountlist
Overrides the accounts section in the config file. Lets you Overrides the accounts section in the config file. Lets you
specify a particular account or set of accounts to sync without specify a particular account or set of accounts to sync without
having to edit the config file. You might use this to exclude having to edit the config file. You might use this to exclude
certain accounts, or to sync some accounts that you normally certain accounts, or to sync some accounts that you normally
prefer not to. prefer not to.
-c configfile -c configfile
Specifies a configuration file to use in lieu of the default, Specifies a configuration file to use in lieu of the default,
~/.offlineimaprc. ~/.offlineimaprc.
-d debugtype[,debugtype...] -d debugtype[,debugtype...]
Enables debugging for OfflineIMAP. This is useful if you are Enables debugging for OfflineIMAP. This is useful if you are
trying to track down a malfunction or figure out what is going trying to track down a malfunction or figure out what is going
on under the hood. I suggest that you use this with -1 in order on under the hood. I suggest that you use this with -1 in order
to make the results more sensible. to make the results more sensible.
-d now requires one or more debugtypes, separated by commas. -d now requires one or more debugtypes, separated by commas.
These define what exactly will be debugged, and so far include These define what exactly will be debugged, and so far include
two options: imap and maildir. The imap option will enable IMAP two options: imap and maildir. The imap option will enable IMAP
protocol stream and parsing debugging. Note that the output may protocol stream and parsing debugging. Note that the output may
contain passwords, so take care to remove that from the debug- contain passwords, so take care to remove that from the debug-
ging output before sending it to anyone else. The maildir ging output before sending it to anyone else. The maildir
option will enable debugging for certain Maildir operations. option will enable debugging for certain Maildir operations.
-o Run only once, ignoring any autorefresh setting in the config -o Run only once, ignoring any autorefresh setting in the config
file. file.
-h, --help -h, --help
Show summary of options. Show summary of options.
-u interface -u interface
Specifies an alternative user interface module to use. This Specifies an alternative user interface module to use. This
overrides the default specified in the configuration file. The overrides the default specified in the configuration file. The
UI specified with -u will be forced to be used, even if its UI specified with -u will be forced to be used, even if its
isuable() method states that it cannot be. Use this option with isuable() method states that it cannot be. Use this option with
care. The pre-defined options are listed in the USER INTERFACES care. The pre-defined options are listed in the USER INTERFACES
section. section.
USER INTERFACES USER INTERFACES
OfflineIMAP has a pluggable user interface system that lets you choose OfflineIMAP has a pluggable user interface system that lets you choose
how the program communicates information to you. There are two graphi- how the program communicates information to you. There are two graphi-
cal interfaces, two terminal interfaces, and two noninteractive inter- cal interfaces, two terminal interfaces, and two noninteractive inter-
faces suitable for scripting or logging purposes. The ui option in the faces suitable for scripting or logging purposes. The ui option in the
configuration file specifies the user interface preferences. The -u configuration file specifies the user interface preferences. The -u
command-line option can override the configuration file. The available command-line option can override the configuration file. The available
values for the configuration file or command-line are describef in this values for the configuration file or command-line are describef in this
section. section.
Tk.Blinkenlights or Curses.Blinkenlights Tk.Blinkenlights or Curses.Blinkenlights
This is an interface designed to be sleek, fun to watch, and informa- This is an interface designed to be sleek, fun to watch, and informa-
tive of the overall picture of what OfflineIMAP is doing. I consider tive of the overall picture of what OfflineIMAP is doing. I consider
it to be the best general-purpose interface in OfflineIMAP. it to be the best general-purpose interface in OfflineIMAP.
Tk.Blinkenlights contains, by default, a small window with a row of Tk.Blinkenlights contains, by default, a small window with a row of
LEDs and a row of command buttons. The total size of the window is LEDs 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 func- very small, so it uses little desktop space, yet it is quite func-
tional. There is also an optional, toggable, log that shows more tional. There is also an optional, toggable, log that shows more
detail about what is happening and is color-coded to match the color of detail about what is happening and is color-coded to match the color of
the lights. the lights.
Curses.Blinkenlights is an interface very similar to Tk.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 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 terminal, etc.) Since it doesn't have access to graphics, it isn't
quite as pretty, but it still gets the job done. quite as pretty, but it still gets the job done.
Tk.Blinkenlights is the only user interface that has configurable Tk.Blinkenlights is the only user interface that has configurable
parameters; see the example offlineimap.conf for more details. parameters; see the example offlineimap.conf for more details.
Each light in the Tk.Blinkenlights or Curses.Blinkenlights interface Each light in the Tk.Blinkenlights or Curses.Blinkenlights interface
represents a thread of execution -- that is, a particular task that represents a thread of execution -- that is, a particular task that
OfflineIMAP is performing right now. The color indicates what task the OfflineIMAP is performing right now. The color indicates what task the
particular thread is performing, and are as follows: particular thread is performing, and are as follows:
Black indicates that this light's thread has terminated; it will light Black indicates that this light's thread has terminated; it will light
up again later when new threads start up. So, black indicates up again later when new threads start up. So, black indicates
no activity. no activity.
Red (Meaning 1) Red (Meaning 1)
is the color of the main program's thread, which basically does is the color of the main program's thread, which basically does
nothing but monitor the others. It might remind you of HAL 9000 nothing but monitor the others. It might remind you of HAL 9000
in 2001. in 2001.
Gray indicates that the thread is establishing a new connection to Gray indicates that the thread is establishing a new connection to
the IMAP server. the IMAP server.
Purple is the color of an account synchronization thread that is moni- Purple is the color of an account synchronization thread that is moni-
toring the progress of the folders in that account (not generat- toring the progress of the folders in that account (not generat-
ing any I/O). ing any I/O).
@ -250,66 +255,66 @@ USER INTERFACES
Pink (bright red) indicates that message flags are being removed. Pink (bright red) indicates that message flags are being removed.
Red / Black Flashing Red / Black Flashing
corresponds to the countdown timer that runs between synchro- corresponds to the countdown timer that runs between synchro-
nizations. nizations.
The name of this interface derives from a bit of computer science his- The name of this interface derives from a bit of computer science his-
tory. Eric Raymond's Jargon File defines blinkenlights, in part, as: tory. Eric Raymond's Jargon File defines blinkenlights, in part, as:
Front-panel diagnostic lights on a computer, esp. a dinosaur. Front-panel diagnostic lights on a computer, esp. a dinosaur.
Now that dinosaurs are rare, this term usually refers to status Now that dinosaurs are rare, this term usually refers to status
lights on a modem, network hub, or the like. lights on a modem, network hub, or the like.
This term derives from the last word of the famous blackletter- This term derives from the last word of the famous blackletter-
Gothic sign in mangled pseudo-German that once graced about half Gothic sign in mangled pseudo-German that once graced about half
the computer rooms in the English-speaking world. One version the computer rooms in the English-speaking world. One version
ran in its entirety as follows: ran in its entirety as follows:
ACHTUNG! ALLES LOOKENSPEEPERS! ACHTUNG! ALLES LOOKENSPEEPERS!
Das computermachine ist nicht fuer gefingerpoken und mitten- Das computermachine ist nicht fuer gefingerpoken und mitten-
grabben. Ist easy schnappen der springenwerk, blowenfusen und grabben. Ist easy schnappen der springenwerk, blowenfusen und
poppencorken mit spitzensparken. Ist nicht fuer gewerken bei poppencorken mit spitzensparken. Ist nicht fuer gewerken bei
das dumpkopfen. Das rubbernecken sichtseeren keepen das cotten- das dumpkopfen. Das rubbernecken sichtseeren keepen das cotten-
pickenen hans in das pockets muss; relaxen und watchen das pickenen hans in das pockets muss; relaxen und watchen das
blinkenlichten. blinkenlichten.
Tk.VerboseUI Tk.VerboseUI
This interface (formerly known as Tk.TkUI) is a graphical interface This interface (formerly known as Tk.TkUI) is a graphical interface
that presents a variable-sized window. In the window, each currently- that presents a variable-sized window. In the window, each currently-
executing thread has a section where its name and current status are executing thread has a section where its name and current status are
displayed. This interface is best suited to people running on slower displayed. This interface is best suited to people running on slower
connections, as you get a lot of detail, but for fast connections, the 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 connec- detail may go by too quickly to be useful. People with fast connec-
tions may wish to use Tk.Blinkenlights instead. tions may wish to use Tk.Blinkenlights instead.
TTY.TTYUI TTY.TTYUI
This interface is the default for people running in terminals. It This interface is the default for people running in terminals. It
prints out basic status messages and is generally friendly to use on a prints out basic status messages and is generally friendly to use on a
console or xterm. console or xterm.
Noninteractive.Basic Noninteractive.Basic
This interface is designed for situations where OfflineIMAP will be run This interface is designed for situations where OfflineIMAP will be run
non-attended and the status of its execution will be logged. You might 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 use it, for instance, to have the system run automatically and e-mail
you the results of the synchronization. This user interface is not you the results of the synchronization. This user interface is not
capable of reading a password from the keyboard; account passwords must capable of reading a password from the keyboard; account passwords must
be specified using one of the configuration file options. be specified using one of the configuration file options.
Noninteractive.Quiet Noninteractive.Quiet
This interface is designed for non-attended running in situations where This interface is designed for non-attended running in situations where
normal status messages are not desired. It will output nothing except normal status messages are not desired. It will output nothing except
errors and serious warnings. Like Noninteractive.Basic, this user errors and serious warnings. Like Noninteractive.Basic, this user
interface is not capable of reading a password from the keyboard; interface is not capable of reading a password from the keyboard;
account passwords must be specified using one of the configuration file account passwords must be specified using one of the configuration file
options. options.
EXAMPLES EXAMPLES
Here is an example configuration for a particularly complex situation; Here is an example configuration for a particularly complex situation;
more examples will be added later. more examples will be added later.
MULTIPLE ACCOUNTS WITH MUTT MULTIPLE ACCOUNTS WITH MUTT
This example shows you how to set up OfflineIMAP to synchronize multi- This example shows you how to set up OfflineIMAP to synchronize multi-
ple accounts with the mutt mail reader. ple accounts with the mutt mail reader.
Start by creating a directory to hold your folders: Start by creating a directory to hold your folders:
@ -318,7 +323,7 @@ EXAMPLES
In your ~/.offlineimaprc, specify this: In your ~/.offlineimaprc, specify this:
accounts = Personal, Work accounts = Personal, Work
Make sure that you have both a [Personal] and a [Work] section, with Make sure that you have both a [Personal] and a [Work] section, with
different localfolder pathnames and enable [mbnames]. different localfolder pathnames and enable [mbnames].
In each account section, do something like this: In each account section, do something like this:
@ -336,10 +341,10 @@ EXAMPLES
UW-IMAPD AND REFERENCES UW-IMAPD AND REFERENCES
Some users with a UW-IMAPD server need to use OfflineIMAP's "reference" Some users with a UW-IMAPD server need to use OfflineIMAP's "reference"
feature to get at their mailboxes, specifying a reference of "~/Mail" feature to get at their mailboxes, specifying a reference of "~/Mail"
or "#mh/" depending on the configuration. The below configuration from or "#mh/" depending on the configuration. The below configuration from
docwhat@gerf.org shows using a reference of Mail, a nametrans that docwhat@gerf.org shows using a reference of Mail, a nametrans that
strips the leading Mail/ off incoming folder names, and a folderfilter strips the leading Mail/ off incoming folder names, and a folderfilter
that limits the folders synced to just three. that limits the folders synced to just three.
[Gerf] [Gerf]
@ -362,8 +367,8 @@ EXAMPLES
holdconnectionopen = no holdconnectionopen = no
PYTHONFILE CONFIGURATION FILE OPTION PYTHONFILE CONFIGURATION FILE OPTION
You can have OfflineIMAP load up a Python file before evaluating the You can have OfflineIMAP load up a Python file before evaluating the
configuration file options that are Python expressions. This example configuration file options that are Python expressions. This example
is based on one supplied by Tommi Virtanen for this feature. is based on one supplied by Tommi Virtanen for this feature.
In ~/.offlineimap.rc, he adds these options: In ~/.offlineimap.rc, he adds these options:
@ -392,69 +397,69 @@ EXAMPLES
folders.sort(mycmp) folders.sort(mycmp)
print folders print folders
This code snippet illustrates how the foldersort option can be cus- This code snippet illustrates how the foldersort option can be cus-
tomized with a Python function from the pythonfile to always synchro- tomized with a Python function from the pythonfile to always synchro-
nize certain folders first. nize certain folders first.
ERRORS ERRORS
If you get one of some frequently-encountered or confusing errors, If you get one of some frequently-encountered or confusing errors,
please check this section. please check this section.
UID validity problem for folder UID validity problem for folder
IMAP servers use a unique ID (UID) to refer to a specific message. 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. 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 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 are an integral part of OfflineIMAP's synchronization scheme; they are
used to match up messages on your computer to messages on the server. 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 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 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 folder, the server will often start the UID back from 1. But
OfflineIMAP might still have the UIDs from the previous folder by the OfflineIMAP might still have the UIDs from the previous folder by the
same name stored. OfflineIMAP will detect this condition and skip the same name stored. OfflineIMAP will detect this condition and skip the
folder. This is GOOD, because it prevents data loss. folder. This is GOOD, because it prevents data loss.
You can fix it by removing your local folder and cache data. For 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 instance, if your folders are under ~/Folders and the folder with the
problem is INBOX, you'd type this: problem is INBOX, you'd type this:
rm -r ~/Folders/INBOX rm -r ~/Folders/INBOX
rm ~/.offlineimap/AccountName/INBOX rm ~/.offlineimap/AccountName/INBOX
(replacing AccountName with the account name as specified in (replacing AccountName with the account name as specified in
~/.offlineimaprc) ~/.offlineimaprc)
Next time you run OfflineIMAP, it will re-download the folder with the 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 new UIDs. Note that the procedure specified above will lose any local
changes made to the folder. changes made to the folder.
Some IMAP servers are broken and do not support UIDs properly. If you 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 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 the above procedure, it is likely that your IMAP server falls into this
category. OfflineIMAP is incompatible with such servers. Using category. OfflineIMAP is incompatible with such servers. Using
OfflineIMAP with them will not destroy any mail, but at the same time, OfflineIMAP with them will not destroy any mail, but at the same time,
it will not actually synchronize it either. (OfflineIMAP will detect it will not actually synchronize it either. (OfflineIMAP will detect
this condition and abort prior to synchronization) this condition and abort prior to synchronization)
OTHER FREQUENTLY ASKED QUESTIONS OTHER FREQUENTLY ASKED QUESTIONS
There are some other FAQs that might not fit into another section of There are some other FAQs that might not fit into another section of
this document, and they are enumerated here. this document, and they are enumerated here.
What platforms does OfflineIMAP run on? What platforms does OfflineIMAP run on?
It should run on most platforms supported by Python, which are It should run on most platforms supported by Python, which are
quite a few. quite a few.
I'm using Mutt. Other IMAP sync programs require me to use set I'm using Mutt. Other IMAP sync programs require me to use set
maildir_trash=yes . Do I need to do that with OfflineIMAP? maildir_trash=yes . Do I need to do that with OfflineIMAP?
No. OfflineIMAP is smart enough to figure out message deletion No. OfflineIMAP is smart enough to figure out message deletion
without this extra crutch. You'll get the best results if you without this extra crutch. You'll get the best results if you
don't use this setting, in fact. don't use this setting, in fact.
How do I specify the names of my folders? How do I specify the names of my folders?
You do not need to. OfflineIMAP is smart enough to automati- You do not need to. OfflineIMAP is smart enough to automati-
cally figure out what folders are present on the IMAP server and cally figure out what folders are present on the IMAP server and
synchronize them. You can use the folderfilter and foldertrans synchronize them. You can use the folderfilter and foldertrans
configuration file options to request certain folders and rename configuration file options to request certain folders and rename
them as they come in if you like. them as they come in if you like.
@ -462,8 +467,8 @@ OTHER FREQUENTLY ASKED QUESTIONS
Use the folderfilter option in the configuration file. Use the folderfilter option in the configuration file.
How can I add or delete a folder? How can I add or delete a folder?
OfflineIMAP does not currently provide this feature, but if you OfflineIMAP does not currently provide this feature, but if you
create a new folder on the IMAP server, it will be created create a new folder on the IMAP server, it will be created
locally automatically. locally automatically.
Are there any other warnings that I should be aware of? Are there any other warnings that I should be aware of?
@ -471,55 +476,55 @@ OTHER FREQUENTLY ASKED QUESTIONS
What is the mailbox name recorder (mbnames) for? What is the mailbox name recorder (mbnames) for?
The Mutt mail reader is not capable of automatically determining The Mutt mail reader is not capable of automatically determining
the names of your mailboxes. OfflineIMAP can help it (or many the names of your mailboxes. OfflineIMAP can help it (or many
other) programs out be writing these names out in a format you other) programs out be writing these names out in a format you
specify. See the example offlineimap.conf file for details. specify. See the example offlineimap.conf file for details.
Can I synchronize multiple accounts with OfflineIMAP? Can I synchronize multiple accounts with OfflineIMAP?
Sure. Just name them all in the accounts line in the general Sure. Just name them all in the accounts line in the general
section of the config file, and add a per-account section for section of the config file, and add a per-account section for
each one. each one.
Does OfflineIMAP support POP? Does OfflineIMAP support POP?
No. POP is not robust enough to do a completely reliable multi- No. POP is not robust enough to do a completely reliable multi-
machine synchronization like OfflineIMAP can do. OfflineIMAP machine synchronization like OfflineIMAP can do. OfflineIMAP
will not support it. will not support it.
Do you support mailbox formats other than Maildir? Do you support mailbox formats other than Maildir?
Not at present. There is no technical reason not to; just no Not at present. There is no technical reason not to; just no
demand yet. Maildir is a superior format anyway. demand yet. Maildir is a superior format anyway.
[technical] Why are your Maildir message filenames so huge? [technical] Why are your Maildir message filenames so huge?
OfflineIMAP has two relevant principles: 1) never modifying your OfflineIMAP has two relevant principles: 1) never modifying your
messages in any way and 2) ensuring 100% reliable synchroniza- messages in any way and 2) ensuring 100% reliable synchroniza-
tions. In order to do a reliable sync, OfflineIMAP must have a tions. In order to do a reliable sync, OfflineIMAP must have a
way to uniquely identify each e-mail. Three pieces of informa- way to uniquely identify each e-mail. Three pieces of informa-
tion are required to do this: your account name, the folder tion are required to do this: your account name, the folder
name, and the message UID. The account name can be calculated name, and the message UID. The account name can be calculated
from the path in which your messages are. The folder name can from the path in which your messages are. The folder name can
usually be as well, BUT some mail clients move messages between usually be as well, BUT some mail clients move messages between
folders by simply moving the file, leaving the name intact. folders by simply moving the file, leaving the name intact.
So, OfflineIMAP must store both a UID folder ID. The folder ID So, OfflineIMAP must store both a UID folder ID. The folder ID
is necessary so OfflineIMAP can detect a message moved to a dif- is necessary so OfflineIMAP can detect a message moved to a dif-
ferent folder. OfflineIMAP stores the UID (U= number) and an ferent folder. OfflineIMAP stores the UID (U= number) and an
md5sum of the foldername (FMD5= number) to facilitate this. md5sum of the foldername (FMD5= number) to facilitate this.
What is the speed of OfflineIMAP's sync? What is the speed of OfflineIMAP's sync?
OfflineIMAP versions 2.0 and above contain a multithreaded sys- OfflineIMAP versions 2.0 and above contain a multithreaded sys-
tem. A good way to experiment is by setting maxsyncaccounts to tem. A good way to experiment is by setting maxsyncaccounts to
3 and maxconnections to 3 in each account clause. 3 and maxconnections to 3 in each account clause.
This lets OfflineIMAP open up multiple connections simultane- This lets OfflineIMAP open up multiple connections simultane-
ously. That will let it process multiple folders and messages ously. That will let it process multiple folders and messages
at once. In most cases, this will increase performance of the at once. In most cases, this will increase performance of the
sync. sync.
Don't set the number too high. If you do that, things might Don't set the number too high. If you do that, things might
actually slow down as your link gets saturated. Also, too many actually slow down as your link gets saturated. Also, too many
connections can cause mail servers to have excessive load. connections can cause mail servers to have excessive load.
Administrators might take unkindly to this, and the server might Administrators might take unkindly to this, and the server might
bog down. There are many variables in the optimal setting; bog down. There are many variables in the optimal setting;
experimentation may help. experimentation may help.
An informal benchmark yields these results for my setup: An informal benchmark yields these results for my setup:
@ -532,82 +537,82 @@ OTHER FREQUENTLY ASKED QUESTIONS
2 seconds with OfflineIMAP 3.x "held connection" 2 seconds with OfflineIMAP 3.x "held connection"
CONFORMING TO CONFORMING TO
o Internet Message Access Protocol version 4rev1 (IMAP 4rev1) as o Internet Message Access Protocol version 4rev1 (IMAP 4rev1) as
specified in RFC2060 specified in RFC2060
o CRAM-MD5 as specified in RFC2195 o CRAM-MD5 as specified in RFC2195
o Maildir as specified in http://www.qmail.org/qmail-manual- o Maildir as specified in http://www.qmail.org/qmail-manual-
html/man5/maildir.html and http://cr.yp.to/proto/maildir.html. html/man5/maildir.html and http://cr.yp.to/proto/maildir.html.
o Standard Python 2.2.1 as implemented on POSIX-compliant systems. o Standard Python 2.2.1 as implemented on POSIX-compliant systems.
NOTES NOTES
DELETING LOCAL FOLDERS DELETING LOCAL FOLDERS
OfflineIMAP does a two-way synchronization. That is, if you make a OfflineIMAP does a two-way synchronization. That is, if you make a
change to the mail on the server, it will be propogated to your local change to the mail on the server, it will be propogated to your local
copy, and vise-versa. Some people might think that it would be wise to 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 just delete all their local mail folders periodically. If you do this
with OfflineIMAP, remember to also remove your local status cache with OfflineIMAP, remember to also remove your local status cache
(~/.offlineimap by default). Otherwise, OfflineIMAP will take this as (~/.offlineimap by default). Otherwise, OfflineIMAP will take this as
an intentional deletion of many messages and will interpret your action an intentional deletion of many messages and will interpret your action
as requesting them to be deleted from the server as well. (If you 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 don't understand this, don't worry; you probably won't encounter this
situation) situation)
COPYING MESSAGES BETWEEN FOLDERS COPYING MESSAGES BETWEEN FOLDERS
Normally, when you copy a message between folders or add a new message 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- 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- ever, sometimes this can be tricky -- if your IMAP server does not pro-
vide the SEARCH command, or does not return something useful, vide the SEARCH command, or does not return something useful,
OfflineIMAP cannot determine the new UID of the message. So, in these OfflineIMAP cannot determine the new UID of the message. So, in these
rare instances, OfflineIMAP will upload the message to the IMAP server rare instances, OfflineIMAP will upload the message to the IMAP server
and delete it from your local folder. Then, on your next sync, the and delete it from your local folder. Then, on your next sync, the
message will be re-downloaded with the proper UID. OfflineIMAP makes message will be re-downloaded with the proper UID. OfflineIMAP makes
sure that the message was properly uploaded before deleting it, so sure that the message was properly uploaded before deleting it, so
there should be no risk of data loss. there should be no risk of data loss.
USE WITH EVOLUTION USE WITH EVOLUTION
OfflineIMAP can work with Evolution. To do so, first configure your OfflineIMAP can work with Evolution. To do so, first configure your
OfflineIMAP account to have: OfflineIMAP account to have:
sep = / sep = /
in its configuration. Then, configure Evolution with the "Maildir-for- in its configuration. Then, configure Evolution with the "Maildir-for-
mat mail directories" server type. For the path, you will need to mat mail directories" server type. For the path, you will need to
specify the name of the top-level folder inside your OfflineIMAP stor- specify the name of the top-level folder inside your OfflineIMAP stor-
age location. You're now set! age location. You're now set!
USE WITH KMAIL USE WITH KMAIL
At this time, I believe that OfflineIMAP is not compatible with KMail. At this time, I believe that OfflineIMAP is not compatible with KMail.
KMail cannot work in any mode other than to move all messages out of KMail cannot work in any mode other than to move all messages out of
all folders immediately, which (besides being annoying and fundamen- all folders immediately, which (besides being annoying and fundamen-
tally broken) is incompatible with OfflineIMAP. tally broken) is incompatible with OfflineIMAP.
MAILING LIST MAILING LIST
There is an OfflineIMAP mailing list available. There is an OfflineIMAP mailing list available.
To subscribe, send the text "Subscribe" in the subject of a mail to To subscribe, send the text "Subscribe" in the subject of a mail to
offlineimap-request@complete.org. To post, send the message to offlineimap-request@complete.org. To post, send the message to
offlineimap@complete.org. offlineimap@complete.org.
BUGS BUGS
Reports of bugs should be sent via e-mail to the OfflineIMAP bug-track- Reports of bugs should be sent via e-mail to the OfflineIMAP bug-track-
ing system (BTS) at offlineimap@bugs.complete.org or submitted on-line ing system (BTS) at offlineimap@bugs.complete.org or submitted on-line
using the Web interface at http://bugs.complete.org/. The Web site using the Web interface at http://bugs.complete.org/. The Web site
also lists all current bugs, where you can check their status or con- also lists all current bugs, where you can check their status or con-
tribute to fixing them. tribute to fixing them.
COPYRIGHT COPYRIGHT
OfflineIMAP, and this manual, are Copyright (C) 2002, 2003 John OfflineIMAP, and this manual, are Copyright (C) 2002, 2003 John
Goerzen. Goerzen.
This program is free software; you can redistribute it and/or modify it 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 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 Free Software Foundation; either version 2 of the License, or (at your
option) any later version. option) any later version.
This program is distributed in the hope that it will be useful, but This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MER- WITHOUT ANY WARRANTY; without even the implied warranty of MER-
CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details. Public License for more details.
You should have received a copy of the GNU General Public License along You should have received a copy of the GNU General Public License along
@ -620,7 +625,7 @@ COPYRIGHT
USA USA
AUTHOR AUTHOR
OfflineIMAP, its libraries, documentation, and all included files, OfflineIMAP, its libraries, documentation, and all included files,
except where noted, was written by John Goerzen <jgoerzen@complete.org> except where noted, was written by John Goerzen <jgoerzen@complete.org>
and copyright is held as stated in the COPYRIGHT section. and copyright is held as stated in the COPYRIGHT section.
@ -631,7 +636,7 @@ AUTHOR
http://quux.org/devel/offlineimap http://quux.org/devel/offlineimap
OfflineIMAP may also be downloaded using Subversion. Additionally, the OfflineIMAP may also be downloaded using Subversion. Additionally, the
distributed tar.gz may be updated with a simple "svn update" command; distributed tar.gz may be updated with a simple "svn update" command;
it is ready to go. For information on getting OfflineIMAP with Subver- it is ready to go. For information on getting OfflineIMAP with Subver-
sion, please visit: sion, please visit:

View File

@ -203,6 +203,14 @@ to run
.B OfflineIMAP. .B OfflineIMAP.
Full documentation for the configuration file is included within the Full documentation for the configuration file is included within the
sample file. sample file.
.PP
.B OfflineIMAP
also ships a file named
.I 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
.I offlineimap.conf.
.\"################################################## .\"##################################################
.\" TeX users may be more comfortable with the \fB<whatever>\fP and .\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invode bold face and italics, .\" \fI<whatever>\fP escape sequences to invode bold face and italics,

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python2.2 #!/usr/bin/env python2.2
# Startup from single-user installation # Startup from single-user installation
# Copyright (C) 2002 John Goerzen # Copyright (C) 2002, 2003 John Goerzen
# <jgoerzen@complete.org> # <jgoerzen@complete.org>
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
@ -18,4 +18,4 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
from offlineimap import init from offlineimap import init
init.startup('3.99.5') init.startup('3.99.6')

View File

@ -392,8 +392,8 @@ class LEDThreadFrame:
def __init__(self, master): def __init__(self, master):
self.canvas = master.getnewobj() self.canvas = master.getnewobj()
self.color = '' self.color = ''
self.ovalid = self.canvas.create_oval(5, 5, 10, self.ovalid = self.canvas.create_oval(4, 4, 9,
10, fill = 'gray', 9, fill = 'gray',
outline = '#303030') outline = '#303030')
def setcolor(self, newcolor): def setcolor(self, newcolor):

View File

@ -1,8 +1,8 @@
productname = 'OfflineIMAP' productname = 'OfflineIMAP'
versionstr = "3.99.5" versionstr = "3.99.6"
revno = long('$Rev: 301 $'[6:-2]) revno = long('$Rev: 327 $'[6:-2])
revstr = "Rev %d" % revno revstr = "Rev %d" % revno
datestr = '$Date: 2003-01-04 19:51:35 -0600 (Sat, 04 Jan 2003) $' datestr = '$Date: 2003-01-06 15:37:27 -0600 (Mon, 06 Jan 2003) $'
versionlist = versionstr.split(".") versionlist = versionstr.split(".")
major = versionlist[0] major = versionlist[0]
@ -22,7 +22,7 @@ to distribute it under the conditions laid out in COPYING."""
homepage = "http://www.quux.org/devel/offlineimap" homepage = "http://www.quux.org/devel/offlineimap"
homegopher = "gopher://quux.org/1/devel/offlineimap" homegopher = "gopher://quux.org/1/devel/offlineimap"
license = """Copyright (C) 2002 John Goerzen <jgoerzen@complete.org> license = """Copyright (C) 2002, 2003 John Goerzen <jgoerzen@complete.org>
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by