/offlineimap/head: changeset 478
Added -l option. Updated documentation for it. Changed _msg to _display override in UI modules. Renamed "doc" to "docs" target in Makefile to avoid conflicting with a subdir.
This commit is contained in:
parent
d52c007857
commit
022655dddd
@ -17,7 +17,7 @@
|
|||||||
SHELL=/bin/bash
|
SHELL=/bin/bash
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-python2.2 setup.py clean --all
|
-python2.3 setup.py clean --all
|
||||||
-rm -f `find . -name "*~"`
|
-rm -f `find . -name "*~"`
|
||||||
-rm -f `find . -name "*.tmp"`
|
-rm -f `find . -name "*.tmp"`
|
||||||
-rm -f bin/offlineimapc
|
-rm -f bin/offlineimapc
|
||||||
@ -34,7 +34,7 @@ clean:
|
|||||||
changelog:
|
changelog:
|
||||||
svn log -v > ChangeLog
|
svn log -v > ChangeLog
|
||||||
|
|
||||||
docs:
|
doc:
|
||||||
docbook2man offlineimap.sgml
|
docbook2man offlineimap.sgml
|
||||||
docbook2man offlineimap.sgml
|
docbook2man offlineimap.sgml
|
||||||
docbook2html -u offlineimap.sgml
|
docbook2html -u offlineimap.sgml
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env python2.2
|
#!/usr/bin/env python2.3
|
||||||
# Startup from system-wide installation
|
# Startup from system-wide installation
|
||||||
# Copyright (C) 2002, 2003 John Goerzen
|
# Copyright (C) 2002, 2003 John Goerzen
|
||||||
# <jgoerzen@complete.org>
|
# <jgoerzen@complete.org>
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
offlineimap (3.99.18) unstable; urgency=low
|
offlineimap (3.99.18) unstable; urgency=low
|
||||||
|
|
||||||
* Made a fix for Python2.3 compatibility.
|
* Made a fix for Python2.3 compatibility.
|
||||||
|
This application now defaults to Python2.3! If you do not have Python
|
||||||
|
2.3, things may not work as expected.
|
||||||
|
* Removed warning when thread debug is specified. Closes: #195739.
|
||||||
|
|
||||||
-- John Goerzen <jgoerzen@complete.org> Tue, 27 May 2003 16:58:54 -0500
|
-- John Goerzen <jgoerzen@complete.org> Tue, 27 May 2003 16:58:54 -0500
|
||||||
|
|
||||||
|
@ -2,13 +2,13 @@ Source: offlineimap
|
|||||||
Section: mail
|
Section: mail
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Maintainer: John Goerzen <jgoerzen@complete.org>
|
Maintainer: John Goerzen <jgoerzen@complete.org>
|
||||||
Build-Depends-Indep: debhelper (>> 3.0.0), python2.2 (>= 2.2.1-4), python2.2-dev (>= 2.2.1-4), groff, docbook-utils
|
Build-Depends-Indep: debhelper (>> 3.0.0), python2.3 (>= 2.2.104), python2.3-dev (>= 2.2.104), groff, docbook-utils
|
||||||
Standards-Version: 3.5.2
|
Standards-Version: 3.5.2
|
||||||
|
|
||||||
Package: offlineimap
|
Package: offlineimap
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Depends: python2.2
|
Depends: python2.3
|
||||||
Suggests: python2.2-tk
|
Suggests: python2.3-tk
|
||||||
Description: IMAP/Maildir synchronization and reader support
|
Description: IMAP/Maildir synchronization and reader support
|
||||||
OfflineIMAP is a tool to simplify your e-mail reading. With
|
OfflineIMAP is a tool to simplify your e-mail reading. With
|
||||||
OfflimeIMAP, you can:
|
OfflimeIMAP, you can:
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
# This is the debhelper compatibility version to use.
|
# This is the debhelper compatibility version to use.
|
||||||
export DH_COMPAT=3
|
export DH_COMPAT=3
|
||||||
|
|
||||||
PYTHON=python2.2
|
PYTHON=python2.3
|
||||||
PACKAGE=offlineimap
|
PACKAGE=offlineimap
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
>OfflineIMAP Manual</TITLE
|
>OfflineIMAP Manual</TITLE
|
||||||
><META
|
><META
|
||||||
NAME="GENERATOR"
|
NAME="GENERATOR"
|
||||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.77+"></HEAD
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"></HEAD
|
||||||
><BODY
|
><BODY
|
||||||
CLASS="REFERENCE"
|
CLASS="REFERENCE"
|
||||||
BGCOLOR="#FFFFFF"
|
BGCOLOR="#FFFFFF"
|
||||||
@ -64,31 +64,24 @@ NAME="AEN18"
|
|||||||
><B
|
><B
|
||||||
CLASS="COMMAND"
|
CLASS="COMMAND"
|
||||||
>offlineimap</B
|
>offlineimap</B
|
||||||
> [-1] [-P <TT
|
> [-1] [-P <VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>profiledir</VAR
|
||||||
>profiledir</I
|
>] [-a <VAR
|
||||||
></TT
|
|
||||||
>] [-a <TT
|
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>accountlist</VAR
|
||||||
>accountlist</I
|
>] [-c <VAR
|
||||||
></TT
|
|
||||||
>] [-c <TT
|
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>configfile</VAR
|
||||||
>configfile</I
|
>] [-d <VAR
|
||||||
></TT
|
|
||||||
>] [-d <TT
|
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>debugtype[,...]</VAR
|
||||||
>debugtype[,...]</I
|
>] [-l <VAR
|
||||||
></TT
|
|
||||||
>] [-o] [-u <TT
|
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>filename</VAR
|
||||||
>interface</I
|
>] [-o] [-u <VAR
|
||||||
></TT
|
CLASS="REPLACEABLE"
|
||||||
|
>interface</VAR
|
||||||
>]</P
|
>]</P
|
||||||
><P
|
><P
|
||||||
><B
|
><B
|
||||||
@ -99,7 +92,7 @@ CLASS="COMMAND"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN38"
|
NAME="AEN40"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Description</H2
|
>Description</H2
|
||||||
@ -196,7 +189,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN56"
|
NAME="AEN58"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Method of Operation</H3
|
>Method of Operation</H3
|
||||||
@ -243,7 +236,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN65"
|
NAME="AEN67"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Quick Start</H2
|
>Quick Start</H2
|
||||||
@ -348,7 +341,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN87"
|
NAME="AEN89"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Installation</H2
|
>Installation</H2
|
||||||
@ -376,7 +369,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN93"
|
NAME="AEN95"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Prerequisites</H3
|
>Prerequisites</H3
|
||||||
@ -440,7 +433,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN107"
|
NAME="AEN109"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>System-Wide Installation, Debian</H3
|
>System-Wide Installation, Debian</H3
|
||||||
@ -486,7 +479,7 @@ CLASS="COMMAND"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN119"
|
NAME="AEN121"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>System-Wide Installation, Other</H3
|
>System-Wide Installation, Other</H3
|
||||||
@ -529,7 +522,7 @@ CLASS="COMMAND"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN129"
|
NAME="AEN131"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Single-Account Installation</H3
|
>Single-Account Installation</H3
|
||||||
@ -614,7 +607,7 @@ CLASS="FILENAME"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN150"
|
NAME="AEN152"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Options</H2
|
>Options</H2
|
||||||
@ -650,11 +643,9 @@ CLASS="PROPERTY"
|
|||||||
</P
|
</P
|
||||||
></DD
|
></DD
|
||||||
><DT
|
><DT
|
||||||
>-P <TT
|
>-P <VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>profiledir</VAR
|
||||||
>profiledir</I
|
|
||||||
></TT
|
|
||||||
></DT
|
></DT
|
||||||
><DD
|
><DD
|
||||||
><P
|
><P
|
||||||
@ -662,11 +653,9 @@ CLASS="REPLACEABLE"
|
|||||||
CLASS="APPLICATION"
|
CLASS="APPLICATION"
|
||||||
>OfflineIMAP</SPAN
|
>OfflineIMAP</SPAN
|
||||||
> into profile mode. The program
|
> into profile mode. The program
|
||||||
will create <TT
|
will create <VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>profiledir</VAR
|
||||||
>profiledir</I
|
|
||||||
></TT
|
|
||||||
>
|
>
|
||||||
(it must not already exist). As it runs, Python profiling
|
(it must not already exist). As it runs, Python profiling
|
||||||
information
|
information
|
||||||
@ -674,22 +663,20 @@ CLASS="REPLACEABLE"
|
|||||||
is present for debugging and optimization only, and should NOT be used
|
is present for debugging and optimization only, and should NOT be used
|
||||||
unless you have a specific reason to do so. It will significantly
|
unless you have a specific reason to do so. It will significantly
|
||||||
slow program performance, may reduce reliability, and can generate
|
slow program performance, may reduce reliability, and can generate
|
||||||
huge amounts of data. You must use the <TT
|
huge amounts of data. You must use the <VAR
|
||||||
CLASS="OPTION"
|
CLASS="OPTION"
|
||||||
>-1</TT
|
>-1</VAR
|
||||||
> option when
|
> option when
|
||||||
you use <TT
|
you use <VAR
|
||||||
CLASS="OPTION"
|
CLASS="OPTION"
|
||||||
>-P</TT
|
>-P</VAR
|
||||||
>.
|
>.
|
||||||
</P
|
</P
|
||||||
></DD
|
></DD
|
||||||
><DT
|
><DT
|
||||||
>-a <TT
|
>-a <VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>accountlist</VAR
|
||||||
>accountlist</I
|
|
||||||
></TT
|
|
||||||
></DT
|
></DT
|
||||||
><DD
|
><DD
|
||||||
><P
|
><P
|
||||||
@ -707,11 +694,9 @@ CLASS="PROPERTY"
|
|||||||
</P
|
</P
|
||||||
></DD
|
></DD
|
||||||
><DT
|
><DT
|
||||||
>-c <TT
|
>-c <VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>configfile</VAR
|
||||||
>configfile</I
|
|
||||||
></TT
|
|
||||||
></DT
|
></DT
|
||||||
><DD
|
><DD
|
||||||
><P
|
><P
|
||||||
@ -723,25 +708,23 @@ CLASS="FILENAME"
|
|||||||
</P
|
</P
|
||||||
></DD
|
></DD
|
||||||
><DT
|
><DT
|
||||||
>-d <TT
|
>-d <VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>debugtype[,...]</VAR
|
||||||
>debugtype[,...]</I
|
|
||||||
></TT
|
|
||||||
></DT
|
></DT
|
||||||
><DD
|
><DD
|
||||||
><P
|
><P
|
||||||
>Enables debugging for OfflineIMAP. This is useful if
|
>Enables debugging for OfflineIMAP. This is useful if
|
||||||
you are trying to track down a malfunction or figure out what is going
|
you are trying to track down a malfunction or figure out what is going
|
||||||
on under the hood. I suggest that you use this with
|
on under the hood. I suggest that you use this with
|
||||||
<TT
|
<VAR
|
||||||
CLASS="OPTION"
|
CLASS="OPTION"
|
||||||
>-1</TT
|
>-1</VAR
|
||||||
> to make the results more sensible.</P
|
> to make the results more sensible.</P
|
||||||
><P
|
><P
|
||||||
><TT
|
><VAR
|
||||||
CLASS="OPTION"
|
CLASS="OPTION"
|
||||||
>-d</TT
|
>-d</VAR
|
||||||
> requires one or more debugtypes,
|
> requires one or more debugtypes,
|
||||||
separated by commas. These define what exactly will be
|
separated by commas. These define what exactly will be
|
||||||
debugged, and include three options: <SPAN
|
debugged, and include three options: <SPAN
|
||||||
@ -774,6 +757,20 @@ CLASS="PROPERTY"
|
|||||||
</P
|
</P
|
||||||
></DD
|
></DD
|
||||||
><DT
|
><DT
|
||||||
|
>-l
|
||||||
|
<VAR
|
||||||
|
CLASS="REPLACEABLE"
|
||||||
|
>filename</VAR
|
||||||
|
></DT
|
||||||
|
><DD
|
||||||
|
><P
|
||||||
|
> Enables logging to filename. This will log everything
|
||||||
|
that goes to the screen to the specified file.
|
||||||
|
Additionally, if any debugging is specified with -d,
|
||||||
|
then debug messages will not go to the screen, but
|
||||||
|
instead to the logfile only.</P
|
||||||
|
></DD
|
||||||
|
><DT
|
||||||
>-o</DT
|
>-o</DT
|
||||||
><DD
|
><DD
|
||||||
><P
|
><P
|
||||||
@ -791,11 +788,9 @@ CLASS="PROPERTY"
|
|||||||
>Show summary of options.</P
|
>Show summary of options.</P
|
||||||
></DD
|
></DD
|
||||||
><DT
|
><DT
|
||||||
>-u <TT
|
>-u <VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>interface</VAR
|
||||||
>interface</I
|
|
||||||
></TT
|
|
||||||
></DT
|
></DT
|
||||||
><DD
|
><DD
|
||||||
><P
|
><P
|
||||||
@ -810,7 +805,7 @@ CLASS="REPLACEABLE"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN212"
|
NAME="AEN219"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>User Interfaces</H2
|
>User Interfaces</H2
|
||||||
@ -826,9 +821,9 @@ CLASS="APPLICATION"
|
|||||||
CLASS="PROPERTY"
|
CLASS="PROPERTY"
|
||||||
>ui</SPAN
|
>ui</SPAN
|
||||||
> option in the configuration file specifies
|
> option in the configuration file specifies
|
||||||
user interface preferences. The <TT
|
user interface preferences. The <VAR
|
||||||
CLASS="OPTION"
|
CLASS="OPTION"
|
||||||
>-u</TT
|
>-u</VAR
|
||||||
> command-line
|
> command-line
|
||||||
option can override the configuration file setting. The available
|
option can override the configuration file setting. The available
|
||||||
values for the configuration file or command-line are described
|
values for the configuration file or command-line are described
|
||||||
@ -836,7 +831,7 @@ CLASS="OPTION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN218"
|
NAME="AEN225"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Tk.Blinkenlights</H3
|
>Tk.Blinkenlights</H3
|
||||||
@ -992,7 +987,7 @@ CLASS="FIRSTTERM"
|
|||||||
>, in part, as:
|
>, in part, as:
|
||||||
</P
|
</P
|
||||||
><A
|
><A
|
||||||
NAME="AEN281"
|
NAME="AEN288"
|
||||||
></A
|
></A
|
||||||
><BLOCKQUOTE
|
><BLOCKQUOTE
|
||||||
CLASS="BLOCKQUOTE"
|
CLASS="BLOCKQUOTE"
|
||||||
@ -1029,7 +1024,7 @@ CLASS="EMPHASIS"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN287"
|
NAME="AEN294"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Curses.Blinkenlights</H3
|
>Curses.Blinkenlights</H3
|
||||||
@ -1047,7 +1042,7 @@ NAME="AEN287"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN291"
|
NAME="AEN298"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Tk.VerboseUI</H3
|
>Tk.VerboseUI</H3
|
||||||
@ -1064,7 +1059,7 @@ NAME="AEN291"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN294"
|
NAME="AEN301"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>TTY.TTYUI</H3
|
>TTY.TTYUI</H3
|
||||||
@ -1077,7 +1072,7 @@ NAME="AEN294"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN297"
|
NAME="AEN304"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Noninteractive.Basic</H3
|
>Noninteractive.Basic</H3
|
||||||
@ -1097,7 +1092,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN301"
|
NAME="AEN308"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Noninteractive.Quiet</H3
|
>Noninteractive.Quiet</H3
|
||||||
@ -1114,7 +1109,7 @@ NAME="AEN301"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN304"
|
NAME="AEN311"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Examples</H2
|
>Examples</H2
|
||||||
@ -1126,7 +1121,7 @@ NAME="AEN304"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN307"
|
NAME="AEN314"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Multiple Accounts with Mutt</H3
|
>Multiple Accounts with Mutt</H3
|
||||||
@ -1199,7 +1194,7 @@ spoolfile=+Personal/INBOX</PRE
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN326"
|
NAME="AEN333"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>UW-IMAPD and References</H3
|
>UW-IMAPD and References</H3
|
||||||
@ -1258,7 +1253,7 @@ holdconnectionopen = no</PRE
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN334"
|
NAME="AEN341"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>pythonfile Configuration File Option</H3
|
>pythonfile Configuration File Option</H3
|
||||||
@ -1324,7 +1319,7 @@ CLASS="PROPERTY"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN347"
|
NAME="AEN354"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Errors</H2
|
>Errors</H2
|
||||||
@ -1335,7 +1330,7 @@ NAME="AEN347"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN350"
|
NAME="AEN357"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>UID validity problem for folder</H3
|
>UID validity problem for folder</H3
|
||||||
@ -1382,17 +1377,13 @@ CLASS="FILENAME"
|
|||||||
><PRE
|
><PRE
|
||||||
CLASS="PROGRAMLISTING"
|
CLASS="PROGRAMLISTING"
|
||||||
>rm -r ~/Folders/INBOX
|
>rm -r ~/Folders/INBOX
|
||||||
rm -r ~/.offlineimap/Account-<TT
|
rm -r ~/.offlineimap/Account-<VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>AccountName</VAR
|
||||||
>AccountName</I
|
|
||||||
></TT
|
|
||||||
>
|
>
|
||||||
rm -r ~/.offlineimap/Repository-<TT
|
rm -r ~/.offlineimap/Repository-<VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>RepositoryName</VAR
|
||||||
>RepositoryName</I
|
|
||||||
></TT
|
|
||||||
></PRE
|
></PRE
|
||||||
><P
|
><P
|
||||||
> (Of course, replace AccountName and RepositoryName
|
> (Of course, replace AccountName and RepositoryName
|
||||||
@ -1452,7 +1443,7 @@ TARGET="_top"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN375"
|
NAME="AEN382"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Other Frequently Asked Questions</H2
|
>Other Frequently Asked Questions</H2
|
||||||
@ -1721,7 +1712,7 @@ CLASS="PROPERTY"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN471"
|
NAME="AEN478"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Conforming To</H2
|
>Conforming To</H2
|
||||||
@ -1760,14 +1751,14 @@ TARGET="_top"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN484"
|
NAME="AEN491"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Notes</H2
|
>Notes</H2
|
||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN486"
|
NAME="AEN493"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Deleting Local Folders</H3
|
>Deleting Local Folders</H3
|
||||||
@ -1799,7 +1790,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN493"
|
NAME="AEN500"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Multiple Instances</H3
|
>Multiple Instances</H3
|
||||||
@ -1828,7 +1819,7 @@ CLASS="PROPERTY"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN500"
|
NAME="AEN507"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Copying Messages Between Folders</H3
|
>Copying Messages Between Folders</H3
|
||||||
@ -1858,7 +1849,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN506"
|
NAME="AEN513"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Use with Evolution</H3
|
>Use with Evolution</H3
|
||||||
@ -1871,9 +1862,9 @@ CLASS="APPLICATION"
|
|||||||
CLASS="APPLICATION"
|
CLASS="APPLICATION"
|
||||||
>OfflineIMAP</SPAN
|
>OfflineIMAP</SPAN
|
||||||
> account to have
|
> account to have
|
||||||
<TT
|
<VAR
|
||||||
CLASS="OPTION"
|
CLASS="OPTION"
|
||||||
>sep = /</TT
|
>sep = /</VAR
|
||||||
> in its configuration. Then, configure
|
> in its configuration. Then, configure
|
||||||
Evolution with the
|
Evolution with the
|
||||||
"Maildir-format mail directories" server type. For the path, you will need to
|
"Maildir-format mail directories" server type. For the path, you will need to
|
||||||
@ -1894,7 +1885,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN514"
|
NAME="AEN521"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Use with KMail</H3
|
>Use with KMail</H3
|
||||||
@ -1928,7 +1919,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN522"
|
NAME="AEN529"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Mailing List</H3
|
>Mailing List</H3
|
||||||
@ -1947,7 +1938,7 @@ TARGET="_top"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN526"
|
NAME="AEN533"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Bugs</H3
|
>Bugs</H3
|
||||||
@ -1973,12 +1964,12 @@ TARGET="_top"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN532"
|
NAME="AEN539"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Copyright</H2
|
>Copyright</H2
|
||||||
><P
|
><P
|
||||||
>OfflineIMAP, and this manual, are Copyright © 2002, 2003 John Goerzen.</P
|
>OfflineIMAP, and this manual, are Copyright © 2002, 2003 John Goerzen.</P
|
||||||
><P
|
><P
|
||||||
> 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
|
||||||
@ -2011,7 +2002,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN541"
|
NAME="AEN548"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Author</H2
|
>Author</H2
|
||||||
@ -2020,12 +2011,12 @@ NAME="AEN541"
|
|||||||
CLASS="APPLICATION"
|
CLASS="APPLICATION"
|
||||||
>OfflineIMAP</SPAN
|
>OfflineIMAP</SPAN
|
||||||
>, its libraries, documentation, and all included files, except where
|
>, its libraries, documentation, and all included files, except where
|
||||||
noted, was written by John Goerzen <TT
|
noted, was written by John Goerzen <CODE
|
||||||
CLASS="EMAIL"
|
CLASS="EMAIL"
|
||||||
><<A
|
><<A
|
||||||
HREF="mailto:jgoerzen@complete.org"
|
HREF="mailto:jgoerzen@complete.org"
|
||||||
>jgoerzen@complete.org</A
|
>jgoerzen@complete.org</A
|
||||||
>></TT
|
>></CODE
|
||||||
> and
|
> and
|
||||||
copyright is held as stated in the COPYRIGHT section.
|
copyright is held as stated in the COPYRIGHT section.
|
||||||
</P
|
</P
|
||||||
@ -2063,7 +2054,7 @@ TARGET="_top"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN553"
|
NAME="AEN560"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>See Also</H2
|
>See Also</H2
|
||||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@ NAME
|
|||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
offlineimap [ -1 ] [ -P profiledir ] [ -a accountlist ] [ -c configfile
|
offlineimap [ -1 ] [ -P profiledir ] [ -a accountlist ] [ -c configfile
|
||||||
] [ -d debugtype[,...] ] [ -o ] [ -u interface ]
|
] [ -d debugtype[,...] ] [ -l filename ] [ -o ] [ -u interface ]
|
||||||
|
|
||||||
|
|
||||||
offlineimap -h | --help
|
offlineimap -h | --help
|
||||||
@ -237,6 +237,12 @@ OPTIONS
|
|||||||
option will enable debugging for certain Maildir operations.
|
option will enable debugging for certain Maildir operations.
|
||||||
And thread will debug the threading model.
|
And thread will debug the threading model.
|
||||||
|
|
||||||
|
-l filename
|
||||||
|
Enables logging to filename. This will log everything that goes
|
||||||
|
to the screen to the specified file. Additionally, if any
|
||||||
|
debugging is specified with -d, then debug messages will not go
|
||||||
|
to the screen, but instead to the logfile only.
|
||||||
|
|
||||||
-o Run only once, ignoring all autorefresh settings in the configu-
|
-o Run only once, ignoring all autorefresh settings in the configu-
|
||||||
ration file.
|
ration file.
|
||||||
|
|
||||||
@ -245,52 +251,52 @@ OPTIONS
|
|||||||
--help Show summary of options.
|
--help 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 defailt specified in the configuration file. The
|
overrides the defailt specified in the configuration file. The
|
||||||
pre-defined options are listed in the User Interfaces section.
|
pre-defined options are listed in the User Interfaces 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 user interface preferences. The -u com-
|
configuration file specifies user interface preferences. The -u com-
|
||||||
mand-line option can override the configuration file setting. The
|
mand-line option can override the configuration file setting. The
|
||||||
available values for the configuration file or command-line are
|
available values for the configuration file or command-line are
|
||||||
described in this section.
|
described in this section.
|
||||||
|
|
||||||
TK.BLINKENLIGHTS
|
TK.BLINKENLIGHTS
|
||||||
Tk.Blinkenlights is an interface designed to be sleek, fun to watch,
|
Tk.Blinkenlights is an interface designed to be sleek, fun to watch,
|
||||||
and informative of the overall picture of what OfflineIMAP is doing. I
|
and informative of the overall picture of what OfflineIMAP is doing. I
|
||||||
consider it to be the best general-purpose interface in OfflineIMAP.
|
consider 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, a small log, and a row of command buttons. The total size of the
|
LEDs, a small log, and a row of command buttons. The total size of the
|
||||||
window is very small, so it uses little desktop space, yet it is quite
|
window is very small, so it uses little desktop space, yet it is quite
|
||||||
functional. The optional, toggleable, log shows more detail about what
|
functional. The optional, toggleable, log shows more detail about what
|
||||||
is happening and is color-coded to match the color of the lights.
|
is happening and is color-coded to match the color of the lights.
|
||||||
|
|
||||||
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 Blinkenlights interface represents a thread of execu-
|
Each light in the Blinkenlights interface represents a thread of execu-
|
||||||
tion -- that is, a particular task that OfflineIMAP is performing right
|
tion -- that is, a particular task that OfflineIMAP is performing right
|
||||||
now. The colors indicate what task the particular thread is perform-
|
now. The colors indicate what task the particular thread is perform-
|
||||||
ing, and are as follows:
|
ing, 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).
|
||||||
|
|
||||||
@ -300,7 +306,7 @@ USER INTERFACES
|
|||||||
|
|
||||||
Blue is the color of a message synchronization controller thread.
|
Blue is the color of a message synchronization controller thread.
|
||||||
|
|
||||||
Orange indicates that an actual message is being copied. (We use
|
Orange indicates that an actual message is being copied. (We use
|
||||||
fuschia for fake messages.)
|
fuschia for fake messages.)
|
||||||
|
|
||||||
Red (meaning 2)
|
Red (meaning 2)
|
||||||
@ -313,68 +319,68 @@ USER INTERFACES
|
|||||||
indicates that message flags are being removed.
|
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 interfaces derives from a bit of computer history.
|
The name of this interfaces derives from a bit of computer history.
|
||||||
Eric Raymond's Jargon File defines blinkenlights, in part, as:
|
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.
|
||||||
|
|
||||||
CURSES.BLINKENLIGHTS
|
CURSES.BLINKENLIGHTS
|
||||||
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.
|
||||||
|
|
||||||
Please see the Tk.Blinkenlights section above for more information
|
Please see the Tk.Blinkenlights section above for more information
|
||||||
about the colors used in this interface.
|
about the colors used in this interface.
|
||||||
|
|
||||||
TK.VERBOSEUI
|
TK.VERBOSEUI
|
||||||
Tk.VerboseUI (formerly known as Tk.TkUI) is a graphical interface that
|
Tk.VerboseUI (formerly known as Tk.TkUI) is a graphical interface that
|
||||||
presents a variable-sized window. In the window, each currently-exe-
|
presents a variable-sized window. In the window, each currently-exe-
|
||||||
cuting thread has a section where its name and current status are dis-
|
cuting thread has a section where its name and current status are dis-
|
||||||
played. This interface is best suited to people running on slower con-
|
played. This interface is best suited to people running on slower con-
|
||||||
nections, as you get a lot of detail, but for fast connections, the
|
nections, as you get a lot of detail, but for fast connections, the
|
||||||
detail may go by too quickly to be useful. People with fast connec-
|
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
|
||||||
TTY.TTYUI interface is for people running in basic, non-color termi-
|
TTY.TTYUI interface is for people running in basic, non-color termi-
|
||||||
nals. It prints out basic status messages and is generally friendly to
|
nals. It prints out basic status messages and is generally friendly to
|
||||||
use on a console or xterm.
|
use on a console or xterm.
|
||||||
|
|
||||||
NONINTERACTIVE.BASIC
|
NONINTERACTIVE.BASIC
|
||||||
Noninteractive.Basic is designed for situations in which OfflineIMAP
|
Noninteractive.Basic is designed for situations in which OfflineIMAP
|
||||||
will be run non-attended and the status of its execution will be
|
will be run non-attended and the status of its execution will be
|
||||||
logged. You might use it, for instance, to have the system run auto-
|
logged. You might use it, for instance, to have the system run auto-
|
||||||
matically and e-mail you the results of the synchronization. This user
|
matically and e-mail you the results of the synchronization. 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.
|
||||||
|
|
||||||
NONINTERACTIVE.QUIET
|
NONINTERACTIVE.QUIET
|
||||||
Noninteractive.Quiet is designed for non-attended running in situations
|
Noninteractive.Quiet is designed for non-attended running in situations
|
||||||
where normal status messages are not desired. It will output nothing
|
where normal status messages are not desired. It will output nothing
|
||||||
except errors and serious warnings. Like Noninteractive.Basic, this
|
except errors and serious warnings. Like Noninteractive.Basic, this
|
||||||
user interface is not capable of reading a password from the keyboard;
|
user 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.
|
||||||
|
|
||||||
@ -383,15 +389,15 @@ EXAMPLES
|
|||||||
mail any other examples you have that may be useful to me.
|
mail any other examples you have that may be useful to me.
|
||||||
|
|
||||||
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 by running mkdir
|
Start by creating a directory to hold your folders by running mkdir
|
||||||
~/Mail. Then, in your ~/.offlineimaprc, specify:
|
~/Mail. Then, in your ~/.offlineimaprc, specify:
|
||||||
|
|
||||||
accounts = Personal, Work
|
accounts = Personal, Work
|
||||||
|
|
||||||
Make sure that you have both an [Account Personal] and an [Account
|
Make sure that you have both an [Account Personal] and an [Account
|
||||||
Work] section. The local repository for each account must have differ-
|
Work] section. The local repository for each account must have differ-
|
||||||
ent localfolder path names. Also, make sure to enable [mbnames].
|
ent localfolder path names. Also, make sure to enable [mbnames].
|
||||||
|
|
||||||
@ -412,10 +418,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
|
||||||
(originally from docwhat@gerf.org) shows using a reference of Mail, a
|
(originally from docwhat@gerf.org) shows using a reference of Mail, a
|
||||||
nametrans that strips the leading Mail/ off incoming folder names, and
|
nametrans that strips the leading Mail/ off incoming folder names, and
|
||||||
a folderfilter that limits the folders synced to just three.
|
a folderfilter that limits the folders synced to just three.
|
||||||
|
|
||||||
[Account Gerf]
|
[Account Gerf]
|
||||||
@ -446,8 +452,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:
|
||||||
@ -475,75 +481,75 @@ 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 -r ~/.offlineimap/Account-AccountName
|
rm -r ~/.offlineimap/Account-AccountName
|
||||||
rm -r ~/.offlineimap/Repository-RepositoryName
|
rm -r ~/.offlineimap/Repository-RepositoryName
|
||||||
|
|
||||||
(Of course, replace AccountName and RepositoryName with the names as
|
(Of course, replace AccountName and RepositoryName with the names as
|
||||||
specified in ~/.offlineimaprc).
|
specified in ~/.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.)
|
||||||
|
|
||||||
This question comes up frequently on the OfflineIMAP mailing list
|
This question comes up frequently on the OfflineIMAP mailing list
|
||||||
<URL:http://lists.complete.org/offlineimap@complete.org/>. You can
|
<URL:http://lists.complete.org/offlineimap@complete.org/>. You can
|
||||||
find a detailed discussion <URL:http://lists.com-
|
find a detailed discussion <URL:http://lists.com-
|
||||||
plete.org/offlineimap@complete.org/2003/04/msg00012.html.gz> of the
|
plete.org/offlineimap@complete.org/2003/04/msg00012.html.gz> of the
|
||||||
problem there.
|
problem there.
|
||||||
|
|
||||||
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
|
||||||
the document, so they are discussed here.
|
the document, so they are discussed 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.
|
||||||
|
|
||||||
@ -551,68 +557,68 @@ 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?
|
||||||
Yes; see the Notes section below.
|
Yes; see the Notes section below.
|
||||||
|
|
||||||
What is the mailbox name recorder (mbnames) for?
|
What is the mailbox name recorder (mbnames) for?
|
||||||
Some mail readers, such as Mutt, are not capable of automati-
|
Some mail readers, such as Mutt, are not capable of automati-
|
||||||
cally determining the names of your mailboxes. OfflineIMAP can
|
cally determining the names of your mailboxes. OfflineIMAP can
|
||||||
help these programs by writing the names of the folders ni a
|
help these programs by writing the names of the folders ni a
|
||||||
format you specify. See the example offlineimap.conf for
|
format you specify. See the example offlineimap.conf for
|
||||||
details.
|
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 configuration file, and add a per-account section
|
section of the configuration file, and add a per-account section
|
||||||
for each one.
|
for 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.
|
||||||
|
|
||||||
Does OfflineIMAP support mailbox formats other than Maildir?
|
Does OfflineIMAP 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. However,
|
demand yet. Maildir is a superior format anyway. However,
|
||||||
OfflineIMAP can sync between two IMAP servers, and some IMAP
|
OfflineIMAP can sync between two IMAP servers, and some IMAP
|
||||||
servers support other formats. You could install an IMAP server
|
servers support other formats. You could install an IMAP server
|
||||||
on your local machine and have OfflineIMAP sync to that.
|
on your local machine and have OfflineIMAP sync to that.
|
||||||
|
|
||||||
[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:
|
||||||
@ -635,7 +641,7 @@ CONFORMING TO
|
|||||||
|
|
||||||
o CRAM-MD5 as specified in RFC2195
|
o CRAM-MD5 as specified in RFC2195
|
||||||
|
|
||||||
o Maildir as specified in the Maildir manpage
|
o Maildir as specified in the Maildir manpage
|
||||||
<URL:http://www.qmail.org/qmail-manual-html/man5/maildir.html> and
|
<URL:http://www.qmail.org/qmail-manual-html/man5/maildir.html> and
|
||||||
the qmail website <URL:http://cr.yp.to/proto/maildir.html>.
|
the qmail website <URL:http://cr.yp.to/proto/maildir.html>.
|
||||||
|
|
||||||
@ -643,72 +649,73 @@ CONFORMING TO
|
|||||||
|
|
||||||
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)
|
||||||
|
|
||||||
MULTIPLE INSTANCES
|
MULTIPLE INSTANCES
|
||||||
OfflineIMAP is not designed to have several instances (for instance, a
|
OfflineIMAP is not designed to have several instances (for instance, a
|
||||||
cron job and an interactive invocation) run over the same mailbox
|
cron job and an interactive invocation) run over the same mailbox
|
||||||
simultaneously. It will perform a check on startup and abort if
|
simultaneously. It will perform a check on startup and abort if
|
||||||
another OfflineIMAP is already running. If you need to schedule syn-
|
another OfflineIMAP is already running. If you need to schedule syn-
|
||||||
chronizations, please use the autorefresh settings rather than cron.
|
chronizations, please use the autorefresh settings rather than cron.
|
||||||
Alternatively, you can set a separate metadata directory for each
|
Alternatively, you can set a separate metadata directory for each
|
||||||
instance.
|
instance.
|
||||||
|
|
||||||
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 sep = / in its configuration. Then, con-
|
OfflineIMAP account to have sep = / in its configuration. Then, con-
|
||||||
figure Evolution with the "Maildir-format mail directories" server
|
figure Evolution with the "Maildir-format mail directories" server
|
||||||
type. For the path, you will need to specify the name of the top-level
|
type. For the path, you will need to specify the name of the top-level
|
||||||
folder inside your OfflineIMAP storage location. You're now set!
|
folder inside your OfflineIMAP storage location. You're now set!
|
||||||
|
|
||||||
USE WITH KMAIL
|
USE WITH KMAIL
|
||||||
At this time, I believe that OfflineIMAP with Maildirs is not compati-
|
At this time, I believe that OfflineIMAP with Maildirs is not compati-
|
||||||
ble with KMail. KMail cannot work in any mode other than to move all
|
ble with KMail. KMail cannot work in any mode other than to move all
|
||||||
messages out of all folders immediately, which (besides being annoying
|
messages out of all folders immediately, which (besides being annoying
|
||||||
and fundamentally broken) is incompatible with OfflineIMAP.
|
and fundamentally broken) is incompatible with OfflineIMAP.
|
||||||
|
|
||||||
However, I have made KMail version 3 work well with OfflineIMAP by
|
However, I have made KMail version 3 work well with OfflineIMAP by
|
||||||
installing an IMAP server on my local machine, having OfflineIMAP sync
|
installing an IMAP server on my local machine, having OfflineIMAP sync
|
||||||
to that, and pointing KMail at the same server.
|
to that, and pointing KMail at the same server.
|
||||||
|
|
||||||
MAILING LIST
|
MAILING LIST
|
||||||
There is an OfflineIMAP mailing list available. To subscribe, send the
|
There is an OfflineIMAP mailing list available. To subscribe, send the
|
||||||
text "Subscribe" in the subject of a mail to offlineimap-request@com-
|
text "Subscribe" in the subject of a mail to offlineimap-request@com-
|
||||||
plete.org. To post, send the message to offlineimap@complete.org.
|
plete.org. To post, send the message to offlineimap@complete.org.
|
||||||
Archives are available at
|
Archives are available at
|
||||||
<URL:http://lists.complete.org/offlineimap@complete.org/>.
|
<URL:http://lists.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 online
|
ing system (BTS) at offlineimap@bugs.complete.org or submitted online
|
||||||
using the web interface <URL:http://bugs.complete.org/>.
|
using the web interface <URL:http://bugs.complete.org/>.
|
||||||
|
|
||||||
The Web site also lists all current bugs, where you can check their
|
The Web site also lists all current bugs, where you can check their
|
||||||
status or contribute to fixing them.
|
status or contribute to fixing them.
|
||||||
|
|
||||||
COPYRIGHT
|
COPYRIGHT
|
||||||
OfflineIMAP, and this manual, are Copyright 2002, 2003 John Goerzen.
|
OfflineIMAP, and this manual, are Copyright (C) 2002, 2003 John
|
||||||
|
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
|
||||||
@ -716,9 +723,9 @@ COPYRIGHT
|
|||||||
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
|
||||||
CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Gen-
|
||||||
Public License for more details.
|
eral 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
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
@ -748,4 +755,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
John Goerzen 22 April 2003 OFFLINEIMAP(1)
|
John Goerzen 02 June 2003 OFFLINEIMAP(1)
|
||||||
|
@ -3,13 +3,13 @@
|
|||||||
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
|
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
|
||||||
.\" Please send any bug reports, improvements, comments, patches,
|
.\" Please send any bug reports, improvements, comments, patches,
|
||||||
.\" etc. to Steve Cheng <steve@ggi-project.org>.
|
.\" etc. to Steve Cheng <steve@ggi-project.org>.
|
||||||
.TH "OFFLINEIMAP" "1" "22 April 2003" "John Goerzen" "OfflineIMAP Manual"
|
.TH "OFFLINEIMAP" "1" "02 June 2003" "John Goerzen" "OfflineIMAP Manual"
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
OfflineIMAP \- Powerful IMAP/Maildir synchronization and reader support
|
OfflineIMAP \- Powerful IMAP/Maildir synchronization and reader support
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
||||||
\fBofflineimap\fR [ \fB-1\fR ] [ \fB-P \fIprofiledir\fB\fR ] [ \fB-a \fIaccountlist\fB\fR ] [ \fB-c \fIconfigfile\fB\fR ] [ \fB-d \fIdebugtype[,...]\fB\fR ] [ \fB-o\fR ] [ \fB-u \fIinterface\fB\fR ]
|
\fBofflineimap\fR [ \fB-1\fR ] [ \fB-P \fIprofiledir\fB\fR ] [ \fB-a \fIaccountlist\fB\fR ] [ \fB-c \fIconfigfile\fB\fR ] [ \fB-d \fIdebugtype[,...]\fB\fR ] [ \fB-l \fIfilename\fB\fR ] [ \fB-o\fR ] [ \fB-u \fIinterface\fB\fR ]
|
||||||
|
|
||||||
|
|
||||||
\fBofflineimap\fR \fB-h\fR | \fB--help\fR
|
\fBofflineimap\fR \fB-h\fR | \fB--help\fR
|
||||||
@ -287,6 +287,13 @@ from the debugging output before sending it to anyone else. The
|
|||||||
certain Maildir operations. And \fIthread\fR
|
certain Maildir operations. And \fIthread\fR
|
||||||
will debug the threading model.
|
will debug the threading model.
|
||||||
.TP
|
.TP
|
||||||
|
\fB-l \fIfilename\fB\fR
|
||||||
|
Enables logging to filename. This will log everything
|
||||||
|
that goes to the screen to the specified file.
|
||||||
|
Additionally, if any debugging is specified with -d,
|
||||||
|
then debug messages will not go to the screen, but
|
||||||
|
instead to the logfile only.
|
||||||
|
.TP
|
||||||
\fB-o\fR
|
\fB-o\fR
|
||||||
Run only once, ignoring all
|
Run only once, ignoring all
|
||||||
\fIautorefresh\fR settings in the configuration
|
\fIautorefresh\fR settings in the configuration
|
||||||
@ -827,7 +834,7 @@ The Web site also lists all current bugs, where you can check their
|
|||||||
status or contribute to fixing them.
|
status or contribute to fixing them.
|
||||||
.SH "COPYRIGHT"
|
.SH "COPYRIGHT"
|
||||||
.PP
|
.PP
|
||||||
OfflineIMAP, and this manual, are Copyright © 2002, 2003 John Goerzen.
|
OfflineIMAP, and this manual, are Copyright (C) 2002, 2003 John Goerzen.
|
||||||
.PP
|
.PP
|
||||||
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
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env python2.2
|
#!/usr/bin/env python2.3
|
||||||
# Startup from single-user installation
|
# Startup from single-user installation
|
||||||
# Copyright (C) 2002, 2003 John Goerzen
|
# Copyright (C) 2002, 2003 John Goerzen
|
||||||
# <jgoerzen@complete.org>
|
# <jgoerzen@complete.org>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<refentryinfo>
|
<refentryinfo>
|
||||||
<address><email>jgoerzen@complete.org</email></address>
|
<address><email>jgoerzen@complete.org</email></address>
|
||||||
<author><firstname>John</firstname><surname>Goerzen</surname></author>
|
<author><firstname>John</firstname><surname>Goerzen</surname></author>
|
||||||
<date> $Date: 2003-04-22 10:47:25 -0500 (Tue, 22 Apr 2003) $ </date>
|
<date> $Date: 2003-06-02 09:06:18 -0500 (Mon, 02 Jun 2003) $ </date>
|
||||||
</refentryinfo>
|
</refentryinfo>
|
||||||
|
|
||||||
<refmeta>
|
<refmeta>
|
||||||
@ -33,6 +33,7 @@
|
|||||||
<arg>-a <replaceable>accountlist</replaceable></arg>
|
<arg>-a <replaceable>accountlist</replaceable></arg>
|
||||||
<arg>-c <replaceable>configfile</replaceable></arg>
|
<arg>-c <replaceable>configfile</replaceable></arg>
|
||||||
<arg>-d <replaceable>debugtype[,...]</replaceable></arg>
|
<arg>-d <replaceable>debugtype[,...]</replaceable></arg>
|
||||||
|
<arg>-l <replaceable>filename</replaceable></arg>
|
||||||
<arg>-o</arg>
|
<arg>-o</arg>
|
||||||
<arg>-u <replaceable>interface</replaceable></arg>
|
<arg>-u <replaceable>interface</replaceable></arg>
|
||||||
</cmdsynopsis>
|
</cmdsynopsis>
|
||||||
@ -371,6 +372,16 @@ cd offlineimap-x.y.z</ProgramListing>
|
|||||||
will debug the threading model.
|
will debug the threading model.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
<varlistentry><term>-l
|
||||||
|
<replaceable>filename</replaceable></term>
|
||||||
|
<listitem><para>
|
||||||
|
Enables logging to filename. This will log everything
|
||||||
|
that goes to the screen to the specified file.
|
||||||
|
Additionally, if any debugging is specified with -d,
|
||||||
|
then debug messages will not go to the screen, but
|
||||||
|
instead to the logfile only.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
<varlistentry><term>-o</term>
|
<varlistentry><term>-o</term>
|
||||||
<listitem><para>Run only once, ignoring all
|
<listitem><para>Run only once, ignoring all
|
||||||
<property>autorefresh</property> settings in the configuration
|
<property>autorefresh</property> settings in the configuration
|
||||||
|
@ -1129,7 +1129,10 @@ class IMAP4_SSL(IMAP4):
|
|||||||
self.port = port
|
self.port = port
|
||||||
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
self.sock.connect((host, port))
|
self.sock.connect((host, port))
|
||||||
self.sslobj = socket.ssl(self.sock._sock, self.keyfile, self.certfile)
|
if sys.version_info[0] <= 2 and sys.version_info[1] <= 2:
|
||||||
|
self.sslobj = socket.ssl(self.sock, self.keyfile, self.certfile)
|
||||||
|
else:
|
||||||
|
self.sslobj = socket.ssl(self.sock._sock, self.keyfile, self.certfile)
|
||||||
self.sslobj = sslwrapper(self.sslobj)
|
self.sslobj = sslwrapper(self.sslobj)
|
||||||
|
|
||||||
|
|
||||||
|
@ -229,32 +229,48 @@ class IMAPServer:
|
|||||||
until the Event object as passed is true. This method is expected
|
until the Event object as passed is true. This method is expected
|
||||||
to be invoked in a separate thread, which should be join()'d after
|
to be invoked in a separate thread, which should be join()'d after
|
||||||
the event is set."""
|
the event is set."""
|
||||||
|
ui = UIBase.getglobalui()
|
||||||
|
ui.debug('imap', 'keepalive thread started')
|
||||||
while 1:
|
while 1:
|
||||||
|
ui.debug('imap', 'keepalive: top of loop')
|
||||||
event.wait(timeout)
|
event.wait(timeout)
|
||||||
|
ui.debug('imap', 'keepalive: after wait')
|
||||||
if event.isSet():
|
if event.isSet():
|
||||||
|
ui.debug('imap', 'keepalive: event is set; exiting')
|
||||||
return
|
return
|
||||||
|
ui.debug('imap', 'keepalive: acquiring connectionlock')
|
||||||
self.connectionlock.acquire()
|
self.connectionlock.acquire()
|
||||||
numconnections = len(self.assignedconnections) + \
|
numconnections = len(self.assignedconnections) + \
|
||||||
len(self.availableconnections)
|
len(self.availableconnections)
|
||||||
self.connectionlock.release()
|
self.connectionlock.release()
|
||||||
|
ui.debug('imap', 'keepalive: connectionlock released')
|
||||||
threads = []
|
threads = []
|
||||||
imapobjs = []
|
imapobjs = []
|
||||||
|
|
||||||
for i in range(numconnections):
|
for i in range(numconnections):
|
||||||
|
ui.debug('imap', 'keepalive: processing connection %d of %d' % (i, numconnections))
|
||||||
imapobj = self.acquireconnection()
|
imapobj = self.acquireconnection()
|
||||||
|
ui.debug('imap', 'keepalive: connection %d acquired' % i)
|
||||||
imapobjs.append(imapobj)
|
imapobjs.append(imapobj)
|
||||||
thr = threadutil.ExitNotifyThread(target = imapobj.noop)
|
thr = threadutil.ExitNotifyThread(target = imapobj.noop)
|
||||||
thr.setDaemon(1)
|
thr.setDaemon(1)
|
||||||
thr.start()
|
thr.start()
|
||||||
threads.append(thr)
|
threads.append(thr)
|
||||||
|
ui.debug('imap', 'keepalive: thread started')
|
||||||
|
|
||||||
|
ui.debug('imap', 'keepalive: joining threads')
|
||||||
|
|
||||||
for thr in threads:
|
for thr in threads:
|
||||||
# Make sure all the commands have completed.
|
# Make sure all the commands have completed.
|
||||||
thr.join()
|
thr.join()
|
||||||
|
|
||||||
|
ui.debug('imap', 'keepalive: releasing connections')
|
||||||
|
|
||||||
for imapobj in imapobjs:
|
for imapobj in imapobjs:
|
||||||
self.releaseconnection(imapobj)
|
self.releaseconnection(imapobj)
|
||||||
|
|
||||||
|
ui.debug('imap', 'keepalive: bottom of loop')
|
||||||
|
|
||||||
class ConfigedIMAPServer(IMAPServer):
|
class ConfigedIMAPServer(IMAPServer):
|
||||||
"""This class is designed for easier initialization given a ConfigParser
|
"""This class is designed for easier initialization given a ConfigParser
|
||||||
object and an account name. The passwordhash is used if
|
object and an account name. The passwordhash is used if
|
||||||
|
@ -82,6 +82,9 @@ def startup(versionno):
|
|||||||
if debugtype == 'thread':
|
if debugtype == 'thread':
|
||||||
threading._VERBOSE = 1
|
threading._VERBOSE = 1
|
||||||
|
|
||||||
|
if '-l' in options:
|
||||||
|
ui.setlogfd(open(options['-l'], 'wt'))
|
||||||
|
|
||||||
if '-o' in options:
|
if '-o' in options:
|
||||||
# FIXME: maybe need a better
|
# FIXME: maybe need a better
|
||||||
for section in accounts.getaccountlist(config):
|
for section in accounts.getaccountlist(config):
|
||||||
|
@ -488,7 +488,7 @@ class Blinkenlights(BlinkenBase, UIBase):
|
|||||||
return s.af[accountname]
|
return s.af[accountname]
|
||||||
|
|
||||||
|
|
||||||
def _msg(s, msg, color = None):
|
def _display(s, msg, color = None):
|
||||||
if "\n" in msg:
|
if "\n" in msg:
|
||||||
for thisline in msg.split("\n"):
|
for thisline in msg.split("\n"):
|
||||||
s._msg(thisline)
|
s._msg(thisline)
|
||||||
|
@ -30,7 +30,7 @@ class TTYUI(UIBase):
|
|||||||
def isusable(s):
|
def isusable(s):
|
||||||
return sys.stdout.isatty() and sys.stdin.isatty()
|
return sys.stdout.isatty() and sys.stdin.isatty()
|
||||||
|
|
||||||
def _msg(s, msg):
|
def _display(s, msg):
|
||||||
s.outputlock.acquire()
|
s.outputlock.acquire()
|
||||||
try:
|
try:
|
||||||
if (currentThread().getName() == 'MainThread'):
|
if (currentThread().getName() == 'MainThread'):
|
||||||
|
@ -222,7 +222,7 @@ class VerboseUI(UIBase):
|
|||||||
finally:
|
finally:
|
||||||
s.tflock.release()
|
s.tflock.release()
|
||||||
|
|
||||||
def _msg(s, msg):
|
def _display(s, msg):
|
||||||
s.gettf().setmessage(msg)
|
s.gettf().setmessage(msg)
|
||||||
|
|
||||||
def threadExited(s, thread):
|
def threadExited(s, thread):
|
||||||
@ -504,7 +504,7 @@ class Blinkenlights(BlinkenBase, VerboseUI):
|
|||||||
lo, hi = s.text.vbar.get()
|
lo, hi = s.text.vbar.get()
|
||||||
s.text.vbar.set(1.0 - (hi - lo), 1.0)
|
s.text.vbar.set(1.0 - (hi - lo), 1.0)
|
||||||
|
|
||||||
def _msg(s, msg):
|
def _display(s, msg):
|
||||||
if "\n" in msg:
|
if "\n" in msg:
|
||||||
for thisline in msg.split("\n"):
|
for thisline in msg.split("\n"):
|
||||||
s._msg(thisline)
|
s._msg(thisline)
|
||||||
|
@ -21,7 +21,8 @@ import re, time, sys, traceback, threading, thread
|
|||||||
from StringIO import StringIO
|
from StringIO import StringIO
|
||||||
|
|
||||||
debugtypes = {'imap': 'IMAP protocol debugging',
|
debugtypes = {'imap': 'IMAP protocol debugging',
|
||||||
'maildir': 'Maildir repository debugging'}
|
'maildir': 'Maildir repository debugging',
|
||||||
|
'thread': 'Threading debugging'}
|
||||||
|
|
||||||
globalui = None
|
globalui = None
|
||||||
def setglobalui(newui):
|
def setglobalui(newui):
|
||||||
@ -39,10 +40,27 @@ class UIBase:
|
|||||||
s.debugmessages = {}
|
s.debugmessages = {}
|
||||||
s.debugmsglen = 50
|
s.debugmsglen = 50
|
||||||
s.threadaccounts = {}
|
s.threadaccounts = {}
|
||||||
|
s.logfile = None
|
||||||
|
|
||||||
################################################## UTILS
|
################################################## UTILS
|
||||||
def _msg(s, msg):
|
def _msg(s, msg):
|
||||||
"""Generic tool called when no other works."""
|
"""Generic tool called when no other works."""
|
||||||
|
s._log(msg)
|
||||||
|
s._display(msg)
|
||||||
|
|
||||||
|
def _log(s, msg):
|
||||||
|
"""Log it to disk. Returns true if it wrote something; false
|
||||||
|
otherwise."""
|
||||||
|
if s.logfile:
|
||||||
|
s.logfile.write("%s: %s\n" % (threading.currentThread().getName(),
|
||||||
|
msg))
|
||||||
|
return s.logfile
|
||||||
|
|
||||||
|
def setlogfd(s, logfd):
|
||||||
|
s.logfile = logfd
|
||||||
|
|
||||||
|
def _display(s, msg):
|
||||||
|
"""Display a message."""
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
def warn(s, msg, minor = 0):
|
def warn(s, msg, minor = 0):
|
||||||
@ -82,8 +100,9 @@ class UIBase:
|
|||||||
while len(s.debugmessages[thisthread]) > s.debugmsglen:
|
while len(s.debugmessages[thisthread]) > s.debugmsglen:
|
||||||
s.debugmessages[thisthread] = s.debugmessages[thisthread][1:]
|
s.debugmessages[thisthread] = s.debugmessages[thisthread][1:]
|
||||||
|
|
||||||
if debugtype in s.debuglist:
|
if not s._log("DEBUG[%s]: %s"):
|
||||||
s._msg("DEBUG[%s]: %s" % (debugtype, msg))
|
if debugtype in s.debuglist:
|
||||||
|
s._display("DEBUG[%s]: %s" % (debugtype, msg))
|
||||||
|
|
||||||
def add_debug(s, debugtype):
|
def add_debug(s, debugtype):
|
||||||
global debugtypes
|
global debugtypes
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env python2.2
|
#!/usr/bin/env python2.3
|
||||||
|
|
||||||
# $Id: setup.py,v 1.1 2002/06/21 18:10:49 jgoerzen Exp $
|
# $Id: setup.py,v 1.1 2002/06/21 18:10:49 jgoerzen Exp $
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user