Skip to content

# Email Gathering with Getmail

To enable the getmail service to retrieve e-mails set the environment variable `ENABLE_GETMAIL` to `1`. Your `compose.yaml` file should include the following:

    environment:
      - ENABLE_GETMAIL=1
      - GETMAIL_POLL=5

In your DMS config volume (eg: `docker-data/dms/config/`), create a `getmail-<ID>.cf` file for each remote account that you want to retrieve mail and store into a local DMS account. `<ID>` should be replaced by you, and is just the rest of the filename (eg: `getmail-example.cf`). The contents of each file should be configuration like documented below.

The directory structure should similar to this:

    ├── docker-data/dms/config
    │   ├── dovecot.cf
    │   ├── getmail-example.cf
    │   ├── postfix-accounts.cf
    │   └── postfix-virtual.cf
    ├── docker-compose.yml
    └── README.md

## Configuration

A detailed description of the configuration options can be found in the online version of the manual page.

### Common Options

The default options added to each `getmail` config are:

    [options]
    verbose = 0
    read_all = false
    delete = false
    max_messages_per_session = 500
    received = false
    delivered_to = false

If you want to use a different base config, mount a file to `/etc/getmailrc_general`. This file will replace the default "Common Options" base config above, that all `getmail-<ID>.cf` files will extend with their configs when used.

IMAP Configuration

This example will:

1. Connect to the remote IMAP server from Gmail.
2. Retrieve mail from the gmail account `alice` with password `notsecure`.
3. Store any mail retrieved from the remote mail-server into DMS for the `user1@example.com` account that DMS manages.

    [retriever]
    type = SimpleIMAPRetriever
    server = imap.gmail.com
    username = alice
    password = notsecure
    [destination]
    type = MDA_external
    path = /usr/lib/dovecot/deliver
    allow_root_commands = true
    arguments =("-d","user1@example.com")

POP3 Configuration

Just like the IMAP example above, but instead via POP3 protocol if you prefer that over IMAP.

    [retriever]
    type = SimplePOP3Retriever
    server = pop3.gmail.com
    username = alice
    password = notsecure
    [destination]
    type = MDA_external
    path = /usr/lib/dovecot/deliver
    allow_root_commands = true
    arguments =("-d","user1@example.com")

### Polling Interval

By default the `getmail` service checks external mail accounts for new mail every 5 minutes. That polling interval is configurable via the `GETMAIL_POLL` ENV variable, with a value in minutes (default: 5, min: 1, max: 30):

    environment:
      - GETMAIL_POLL=1

### XOAUTH2 Authentication

It is possible to utilize the `getmail-gmail-xoauth-tokens` helper to provide authentication using `xoauth2` for gmail (example 12) or Microsoft Office 365 (example 13)