2021-03-01 10:41:19 +00:00
---
title: 'Email Gathering with Fetchmail'
---
To enable the [fetchmail][fetchmail-website] service to retrieve e-mails set the environment variable `ENABLE_FETCHMAIL` to `1` . Your `docker-compose.yml` file should look like following snippet:
2016-08-21 12:02:06 +00:00
2017-10-05 06:30:23 +00:00
```yaml
2016-08-21 12:03:37 +00:00
environment:
- ENABLE_FETCHMAIL=1
2017-10-05 06:30:23 +00:00
- FETCHMAIL_POLL=300
2016-08-21 12:02:06 +00:00
```
2016-09-04 17:12:17 +00:00
Generate a file called `fetchmail.cf` and place it in the `config` folder. Your `docker-mailserver` folder should look like this example:
2016-08-22 08:16:47 +00:00
2021-03-01 10:41:19 +00:00
```txt
2016-08-22 08:16:47 +00:00
├── config
│ ├── dovecot.cf
│ ├── fetchmail.cf
│ ├── postfix-accounts.cf
│ └── postfix-virtual.cf
├── docker-compose.yml
└── README.md
```
2016-08-21 12:10:33 +00:00
2021-03-01 10:41:19 +00:00
## Configuration
2016-08-22 08:23:51 +00:00
2021-03-01 10:41:19 +00:00
A detailed description of the configuration options can be found in the [online version of the manual page][fetchmail-docs].
2016-08-22 08:40:34 +00:00
2021-03-01 10:41:19 +00:00
### Example IMAP Configuration
2016-08-21 12:10:33 +00:00
2021-03-01 10:41:19 +00:00
```fetchmailrc
2016-08-22 20:42:25 +00:00
poll 'imap.example.com' proto imap
2021-03-01 10:41:19 +00:00
user 'username'
pass 'secret'
is 'user1@domain.tld'
ssl
2016-08-21 12:10:33 +00:00
```
2021-03-01 10:41:19 +00:00
### Example POP3 Configuration
2016-08-21 12:10:33 +00:00
2021-03-01 10:41:19 +00:00
```fetchmailrc
2016-08-22 20:42:25 +00:00
poll 'pop3.example.com' proto pop3
2021-03-01 10:41:19 +00:00
user 'username'
pass 'secret'
is 'user2@domain.tld'
ssl
2016-08-21 12:10:33 +00:00
```
2021-03-01 10:41:19 +00:00
!!! caution
Don’ t forget the last line: eg: `is 'user1@domain.tld'` . After `is` you have to specify one email address from the configuration file `config/postfix-accounts.cf` .
2016-08-22 20:30:47 +00:00
2021-03-01 10:41:19 +00:00
More details how to configure fetchmail can be found in the [fetchmail man page in the chapter “The run control file”][fetchmail-docs-run].
2016-08-29 20:13:22 +00:00
2021-03-01 10:41:19 +00:00
### Polling Interval
2016-08-29 20:13:22 +00:00
2021-03-01 10:41:19 +00:00
By default the fetchmail service searches every 5 minutes for new mails on your external mail accounts. You can override this default value by changing the ENV variable `FETCHMAIL_POLL` :
2016-08-29 20:13:22 +00:00
2017-10-05 06:30:23 +00:00
```yaml
2021-03-01 10:41:19 +00:00
environment:
2017-10-05 06:30:23 +00:00
- FETCHMAIL_POLL=60
2016-08-29 20:13:22 +00:00
```
2021-03-01 10:41:19 +00:00
2016-08-29 20:13:22 +00:00
You must specify a numeric argument which is a polling interval in seconds. The example above polls every minute for new mails.
2016-08-22 08:25:14 +00:00
2021-03-01 10:41:19 +00:00
## Debugging
2016-08-22 08:23:51 +00:00
2016-08-22 08:12:04 +00:00
To debug your `fetchmail.cf` configuration run this command:
2021-03-01 10:41:19 +00:00
```sh
2016-08-29 20:04:40 +00:00
./setup.sh debug fetchmail
2016-08-22 08:12:04 +00:00
```
2021-03-01 10:41:19 +00:00
For more informations about the configuration script `setup.sh` [read the corresponding docs][docs-setup].
2016-08-29 22:14:21 +00:00
Here a sample output of `./setup.sh debug fetchmail` :
2021-03-01 10:41:19 +00:00
```log
2016-08-29 22:14:21 +00:00
fetchmail: 6.3.26 querying outlook.office365.com (protocol POP3) at Mon Aug 29 22:11:09 2016: poll started
Trying to connect to 132.245.48.18/995...connected.
fetchmail: Server certificate:
fetchmail: Issuer Organization: Microsoft Corporation
fetchmail: Issuer CommonName: Microsoft IT SSL SHA2
fetchmail: Subject CommonName: outlook.com
fetchmail: Subject Alternative Name: outlook.com
fetchmail: Subject Alternative Name: *.outlook.com
fetchmail: Subject Alternative Name: office365.com
fetchmail: Subject Alternative Name: *.office365.com
fetchmail: Subject Alternative Name: *.live.com
fetchmail: Subject Alternative Name: *.internal.outlook.com
fetchmail: Subject Alternative Name: *.outlook.office365.com
fetchmail: Subject Alternative Name: outlook.office.com
fetchmail: Subject Alternative Name: attachment.outlook.office.net
fetchmail: Subject Alternative Name: attachment.outlook.officeppe.net
fetchmail: Subject Alternative Name: *.office.com
fetchmail: outlook.office365.com key fingerprint: 3A:A4:58:42:56:CD:BD:11:19:5B:CF:1E:85:16:8E:4D
fetchmail: POP3< +OK The Microsoft Exchange POP3 service is ready. [SABFADEAUABSADAAMQBDAEEAMAAwADAANwAuAGUAdQByAHAAcgBkADAAMQAuAHAAcgBvAGQALgBlAHgAYwBoAGEAbgBnAGUAbABhAGIAcwAuAGMAbwBtAA==]
fetchmail: POP3> CAPA
fetchmail: POP3< +OK
fetchmail: POP3< TOP
fetchmail: POP3< UIDL
fetchmail: POP3< SASL PLAIN
fetchmail: POP3< USER
fetchmail: POP3< .
fetchmail: POP3> USER user1@outlook.com
fetchmail: POP3< +OK
fetchmail: POP3> PASS *
fetchmail: POP3< +OK User successfully logged on.
fetchmail: POP3> STAT
fetchmail: POP3< +OK 0 0
fetchmail: No mail for user1@outlook.com at outlook.office365.com
fetchmail: POP3> QUIT
fetchmail: POP3< +OK Microsoft Exchange Server 2016 POP3 server signing off.
fetchmail: 6.3.26 querying outlook.office365.com (protocol POP3) at Mon Aug 29 22:11:11 2016: poll completed
fetchmail: normal termination, status 1
2021-03-01 10:41:19 +00:00
```
[docs-setup]: ../config/setup.sh.md
[fetchmail-website]: https://www.fetchmail.info
[fetchmail-docs]: https://www.fetchmail.info/fetchmail-man.html
[fetchmail-docs-run]: https://www.fetchmail.info/fetchmail-man.html#31