
getmail documentation

   This is the documentation for getmail version 4. Version 4 includes
   numerous changes from version 3.x; if you are using getmail version 3,
   please refer to the documentation included with that version of the
   software.

   getmail is Copyright  1998-2007 Charles Cazabon. <charlesc-getmail @
   pyropus.ca>

   getmail is licensed under the GNU General Public License version 2
   (only). If you wish to obtain a license to distribute getmail under
   other terms, please contact me directly.

Table of Contents

     * getmail documentation
     *
          + getmail documentation
          +
               o Features
               o Differences from previous versions
               o Requirements
               o Obtaining getmail
               o Installing getmail
               o
                    # For the impatient
                    # Full installation instructions
                    # Installing from the RPM
                    # Installing directly from the source
                    #
                         @ Installing in the default location
                         @ Installing under an alternate prefix directory
                         @ Installing parts of the package to alternate
                           directories
                    # Installing the getmailcore package in a
                      non-standard location
                    # Building a binary package from the source
               o getmail mailing lists
               o
                    # getmail-users' mailing list
                    #
                         @ How to subscribe
                         @ How to unsubscribe
                         @ How to post
                         @ Archives of the getmail-users' mailing list
                         @ Notes on the getmail-users' mailing list
                    # Announcements List
                    #
                         @ How to subscribe
                         @ How to unsubscribe
                         @ How to post
                         @ Archives of the getmail announcements mailing
                           list
     * getmail configuration
     *
          + Configuring getmail
          +
               o Creating a getmail rc file
          + Running getmail
          +
               o Commandline options
               o Using getmail as an MDA
               o Using getmail_fetch to retrieve mail from scripts
     * getmail troubleshooting
     *
          + Troubleshooting problems
          +
               o Error messages
               o Warning messages
               o Unexpected Behaviour
     * getmail frequently-asked questions (FAQs)
     *
          + Frequently-Asked Questions (FAQs)
          +
               o About getmail
               o Configuring getmail
               o How do I ...
               o Using getmail with other software
               o I think I found this bug in getmail ...

Features

   getmail is a mail retriever designed to allow you to get your mail
   from one or more mail accounts on various mail servers to your local
   machine for reading with a minimum of fuss. getmail is designed to be
   secure, flexible, reliable, and easy-to-use. getmail is designed to
   replace other mail retrievers such as fetchmail.

   getmail version 4 includes the following features:
     * simple to install, configure, and use
     * retrieve virtually any mail
          + support for accessing mailboxes with the following protocols:
               o POP3
               o POP3-over-SSL
               o IMAP4
               o IMAP4-over-SSL
               o SDPS (Demon UK's extensions to POP3)
          + support for single-user and domain mailboxes
          + retrieve mail from an unlimited number of mailboxes and
            servers
          + can remember which mail it has already retrieved, and can be
            set to only download new messages
     * support for message filtering, classification, and annotation by
       external programs like spam filters and anti-virus programs
     * support for delivering messages to different destinations based on
       the message recipient
     * reliability
          + native safe and reliable delivery support for maildirs and
            mboxrd files, in addition to delivery through arbitrary
            external message delivery agents (MDAs)
          + does not destroy information by rewriting mail headers
          + does not cause mail loops by doing SMTP injection, and
            therefore does not require that you run an MTA (like qmail or
            sendmail) on your host
     * written in Python, and therefore easy to extend or customize
          + a flexible, extensible architecture so that support for new
            mail access protocols, message filtering operations, or
            destination types can be easily added
          + cross-platform operation; getmail 4 should work on
            Unix/Linux, Macintosh, and other platforms. Windows support
            available under the free Cygwin package.
     * winner of various software awards, including DaveCentral's "Best
       of Linux"

Differences from previous versions

   getmail version 4 has been completely rewritten. It is designed to
   closely mimic the interface and user experience of getmail version 3,
   but the new architecture necessitates some differences you will
   notice:
     * the getmail rc file (configuration file) format has changed. If
       you are upgrading from version 3, you will need to write a new
       configuration file based on the contents of your old one. The new
       file format resembles the old in many ways. Each account you
       retrieve mail from will require a separate rc file, but getmail
       can operate with multiple rc files simultaneously if you wish to
       retrieve mail from multiple accounts.
     * support for protocols other than POP3/SDPS. IMAP support is now
       included, and other protocols can be added with relative ease.
     * support for SSL-encrypted protocols. The included POP3 and IMAP
       retriever classes are complemented by SSL-enabled counterparts.
     * messages can be filtered or annotated by external programs like
       spam filters and anti-Microsoft-worm programs. Filters can cause
       messages to be dropped completely.
     * a flexible, extensible architecture. Additional classes for
       handling new mail protocols, filter types, or destination
       mailstores can be added without needing to modify the main script
       at all. Feel free to contact me if you need a custom retriever,
       filter, or destination class written, or if you want commercial
       support for getmail.

Requirements

   getmail version 4 requires Python version 2.3.3 or later. If you have
   only an earlier version of Python available, you can install the
   latest version without disturbing your current version, or use getmail
   version 3, which requires only Python version 1.5.2 or later.

   At the time of this writing, the current stable version of Python is
   2.3.4. You can download that version from the page at
   http://www.python.org/2.3.4/ . Binary packages are available for
   RPM-based Linux systems, or building Python from source is typically
   as easy as unpacking the source tarball, and running the following
   commands:
./configure
make
make install

   Since the above was written, Python 2.4 has been released. getmail 4
   will work with that version of Python as well.

   getmail 4 also requires that servers uniquely identify the messages
   they provide (via the UIDL command) to getmail for full functionality.
   Certain very old or broken POP3 servers may not be capable of this (I
   have had only one report of such problems from among the tens of
   thousands of people who have downloaded getmail 4 from my website and
   from other archives), or may not implement the UIDL command at all,
   and limited support is available for such servers via the
   BrokenUIDLPOP3Retriever and BrokenUIDLPOP3SSLRetriever retriever
   classes.

Obtaining getmail

   Download getmail 4 from the official website main page at
   http://pyropus.ca/software/getmail/ .

Installing getmail

For the impatient

   Installing getmail is very easy; just download the tarball
   distribution, unpack it, change into the directory it unpacks into,
   and run this command:
$ python setup.py install

   That's all there is to it. 99.9% of users don't need a special
   package/port/etc. If you'd like more details on install options, keep
   reading.

Full installation instructions

   Once you have downloaded or otherwise obtained getmail, unpack it. On
   GNU-ish Unix-like systems, this means:
$ tar xzf getmail-version.tar.gz

   On Macintosh systems, use a Zip-type archiver program to unpack the
   tarball.

   On SystemV-like Unix systems, you may instead need to break this down
   into two steps:
$ gunzip getmail-version.tar.gz
$ tar xf getmail-version.tar

   Then, change into the extracted getmail directory and start the build
   process. The easiest installation method is to use the included
   setup.py Python distutils script to build and install getmail
   directly. Alternatively, you can build a binary package (i.e., an RPM
   or similar managed software package) for your system from the source
   package and install the resulting package, but the Python distutils
   support for this is spotty at present.

Installing from the RPM

   If you downloaded the RPM, you should be able to install it with the
   following command:
$ rpm -ihv getmail-version-release.noarch.rpm

Installing directly from the source

   To build and install directly from the included source, follow these
   steps.
$ cd getmail-version
$ python setup.py build

   When that completes in a few seconds, become root and then install the
   software. You can install in the default location, or specify an
   alternate location to install the software, or specify alternate
   directories for only part of the package.

Installing in the default location

   To install in the default location, become user root and install with
   the following commands:
$ su
enter root password
# python setup.py install

   This will, by default, install files into subdirectories under the
   directory prefix, which is the directory that your Python installation
   was configured to install under (typically /usr/local/ or /usr/, but
   other values are sometimes used):
     * the scripts getmail, getmail_fetch, getmail_maildir, and
       getmail_mbox will be installed under prefix/bin/
     * the Python package getmailcore (which implements all the
       protocol-, filter-, and destination-specific code for getmail,
       plus various other bits) will be installed under the site-specific
       packages directory of your Python library directory. This
       directory is prefix/lib/python-python-version/site-packages/.
     * The documentation directory getmail-getmail-version will be
       installed under prefix/doc/
     * The manual pages for the four scripts will be installed under
       prefix/man/

   You can see a list of the default installation locations by running:
# python setup.py install --show-default-install-dirs

Installing under an alternate prefix directory

   You can specify an alternate prefix directory by supplying the
   --prefix option to the install command, like this:
# python setup.py install --prefix=path

   This will install the various parts of the package in subdirectories
   like in the default installation (see the section Installing in the
   default location above), but under your specified prefix directory.
   These alternate installations allow you to install the software
   without root privileges (say, by installing under $HOME/). Note,
   however, that the getmailcore package will not be in the default
   Python module search path if you do this; see the section Installing
   the getmailcore package in a non-standard location if you use this
   option.

Installing parts of the package to alternate directories

   If you only want to change the directory for some of the components,
   use the following options:
     * --install-lib=path specifies the directory the getmailcore package
       is installed under (i.e., it will be installed as path/getmailcore
       ). See the section Installing the getmailcore package in a
       non-standard location if you use this option.
     * --install-scripts=path specifies the directory the four scripts
       are installed under (i.e., they will be installed directly in
       path/ ).
     * --install-data=path specifies the directory the documentation is
       installed under (i.e., the HTML and plaintext documentation will
       be installed in the directory path/doc/getmail-getmail-version/,
       and the man(1) pages will be installed in path/man/man1/.

   For example, if your Python installation is located under /usr/
   because it was installed as part of your OS, but you would like the
   getmail scripts installed into /usr/local/bin/ instead of /usr/bin/,
   while still letting the getmailcore package be installed under
   /usr/lib/python-python-version/site-packages/, and the documentation
   and man pages under /usr/doc/ and /usr/man/ you could use this command
   to install:
# python setup.py --install-scripts=/usr/local/bin/

   If you also wanted to locate the documentation and man pages under
   /usr/local/ but still install the getmailcore package in the default
   /usr/lib/python-python-version/site-packages/, you would instead use
   this command to install:
# python setup.py --install-scripts=/usr/local/bin/ --install-data=/usr/local/

Installing the getmailcore package in a non-standard location

   Note: if you use one of the above methods to install the getmailcore
   package into a directory other than the default, the four scripts
   (getmail, getmail_fetch, getmail_maildir, and getmail_mbox) will
   almost certainly be unable to locate the required files from the
   getmailcore package, because they will not be in a directory in the
   standard Python module search path. You will need to do one of the
   following to make those files available to the scripts:
     * set the environment variable PYTHONPATH to tell Python where to
       find the appropriate modules. See the documentation at the
       Python.org website for details.
       Note that setting PYTHONPATH in $HOME/.profile (or equivalent) is
       not sufficient -- for instance, cron runs jobs in a simpler
       environment, ignoring $HOME/.profile, and getmail would therefore
       fail when run as a user cron job. It is strongly recommended that
       you install the Python library files in the site-packages
       directory which Python provides for exactly this reason.
     * modify the scripts to explicitly tell Python where you've
       installed them. Insert a line like this:
sys.path.append('/path/to/installation-directory')
       containing the path to the directory you installed the getmailcore
       directory in, somewhere below the line which reads
import sys
       and before the first line which references getmailcore .

Building a binary package from the source

   To build a binary package from the included source, run the following
   command from inside the unpacked getmail source.
$ cd getmail-version
$ python setup.py bdist --format=package-format

   The useful allowed values for package-format are:
     * rpm -- build a .noarch.rpm file which can then be installed with
       the rpm package manager.
     * pkgtool -- build a package for the Sun Solaris pkgtool package
       manager.
     * sdux -- build a package for the HP/UX swinstall software
       installer.

   Ideally, if you use this method, it will result in a "built
   distribution" binary package in a subdirectory named dist which can
   then be installed using the appropriate system-specific tool. If you
   have problems with this process, please do not ask me for assistance;
   ask your OS vendor or the comp.lang.python newsgroup. The
   install-directory-from-source process above is the only one I can
   support, and it should work on all platforms.

   You can discuss issues with building binary packages on the getmail
   users' mailing list.

getmail mailing lists

getmail-users' mailing list

   A mailing list has been set up to discuss getmail. Only subscribers
   may post to the list.

   The list is available for free getmail support from me and other
   users, for discussions of bugs, configuration issues, documentation,
   and other technical issues related to getmail.

How to subscribe

   To subscribe to the list, send a blank email to <getmail-subscribe @
   lists.pyropus.ca> and follow the instructions in the message you
   receive. Read and save the "welcome" message you receive when you
   subscribe; it contains valuable instructions about how to use the
   list.

How to unsubscribe

   To un-subscribe from the list, send a blank email from the same
   address you subscribed with to <getmail-unsubscribe @
   lists.pyropus.ca> and follow the instructions in the message you
   receive.

How to post

   Once you have subscribed to the list, you may post messages to the
   list by sending them to <getmail @ lists.pyropus.ca>. Complete
   instructions for using the list are sent to you when you subscribe.

   The list allows plaintext message bodies and plaintext attachments. Do
   not attempt to send binary files (gzip, etc), HTML, or other types, as
   they will be stripped from your message.

   Note: please ensure you have read the documentation and Frequently
   Asked Questions, and browsed/searched the mailing list archives before
   posting a question to the mailing list.

Archives of the getmail-users' mailing list

   There are browsable archives of the list at
   http://marc.theaimsgroup.com/?l=getmail&r=1&w=2 and
   http://news.gmane.org/gmane.mail.getmail.user . The GMANE getmail
   users' archive is also available via NNTP if you prefer to read it
   with a newsreader, rather than a web browser.

Notes on the getmail-users' mailing list

   When subscribing to the getmail users' mailing list, please note the
   following:
     * The mailing list software does not, and will not munge the
       Reply-To: header of list messages. I encourage you to read and
       post to the list using a good MUA that properly supports
       reply-to-list and reply-to-author functionality. If your MUA lacks
       a reply-to-list function, you'll need to manually ensure your
       followup messages to the the list are actually directed to the
       list submission address.
     * The mailing list software does not munge the Subject: header of
       list messages, so don't look for "[getmail-users]" or anything
       like that. If you want your MUA to recognize list messages, there
       are a number of header fields added to allow it to do so.
     * Subscribing and unsubscribing from the list are both secure and
       completely automatic. When you try to do either, the list manager
       software will send you a special message you have to reply to to
       finish the operation; this prevents others from subscribing you to
       or unsubscribing you from the list without your permission.
     * You must be a list subscriber to post messages to the list.

Announcements List

   If you only want to be notified of new releases of getmail, an
   announce-only list has been set up. The list is very low-volume; you
   can expect to receive only a small number of messages per month.

   All announcements are sent to both lists, so there is no need to
   subscribe to the announcements list if you are on the discussion list.

How to subscribe

   To subscribe to the list, send a blank email to
   <getmail-announce-subscribe @ lists.pyropus.ca> and follow the
   instructions in the message you receive. Read and save the "welcome"
   message you receive when you subscribe; it contains valuable
   instructions about how to use the list.

How to unsubscribe

   To un-subscribe from the list, send a blank email from the same
   address you subscribed with to <getmail-announce-unsubscribe @
   lists.pyropus.ca> and follow the instructions in the message you
   receive.

How to post

   You cannot post messages directly to the announcements list. If you
   feel you have an announcement regarding getmail which should be
   distributed, send it to me and request that I send it to the
   announcements list.

Archives of the getmail announcements mailing list

   There is an archive of the announcements list at
   http://news.gmane.org/gmane.mail.getmail.announce . The GMANE getmail
   announcements archive is also available via NNTP if you prefer to read
   it with a newsreader, rather than a web browser.
