docker-mailserver/docs/content/config/advanced/mail-getmail.md
LucidityCrash 7af7546d88
feature: adding getmail as an alternative to fetchmail (#2803)
Co-authored-by: Brennan Kinney <5098581+polarathene@users.noreply.github.com>
Co-authored-by: Georg Lauterbach <44545919+georglauterbach@users.noreply.github.com>
Co-authored-by: Casper <casperklein@users.noreply.github.com>
2023-05-23 17:25:08 +02:00

3.4 KiB

title
Advanced | 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.

??? example "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.

```getmailrc
[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")
```

??? example "POP3 Configuration"

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

```getmailrc
[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)