Hey all,
I have given up hope of hosting my own mail server but was hoping for one that would serve as an archive -
- downloads new emails via IMAP from my mail provider on a regular basis
- allows my mail clients to connect via IMAP to view and search emails
Any suggestions for a docker solution for this?
Thanks
I use dovecot for this. And thunderbird to actually move/archive the emails. I use caddy for many of my services, so I have pointed dovecot to caddys certificates (for “my.domain”), since it manages certificates through let’s encrypt. I had a plan to install postfix for sending internal emails from my self-hosted services, but it seemed like a bit of configuration and I got busy with other stuff
I made an excerpt from my docker-compose.yml, but you probably have to figure out some things on your own
version: '3.4' services: dovecot: image: dovecot/dovecot:2.3.20 restart: unless-stopped volumes: - ./dovecot/:/etc/dovecot - /mnt/storage/dovecot/mail:/srv/mail - ./caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.my.domain/wildcard_.my.domain.crt:/etc/ssl/cert.crt - ./caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.my.domain/wildcard_.my.domain.key:/etc/ssl/key.key ports: - 993:993
contents of ./dovecot folder:
contents of dovecot.conf (I think I searched online to find a good example, I don’t remember where from…)
## manage this file mail_home=/srv/mail/%Lu mail_location=sdbox:~/Mail mail_uid=1000 mail_gid=1000 protocols = imap pop3 submission sieve lmtp first_valid_uid = 1000 last_valid_uid = 1000 passdb { driver = passwd-file args = scheme=argon2i /etc/dovecot/passwords } ssl=yes ssl_cert=</etc/ssl/cert.crt ssl_key=</etc/ssl/key.key namespace { inbox = yes separator = / mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Sent { auto = subscribe special_use = \Sent } mailbox Spam { auto = subscribe special_use = \Junk } mailbox Trash { auto = subscribe special_use = \Trash } mailbox Archive { auto = subscribe special_use = \Archive } } service lmtp { inet_listener { port = 24 } } listen = * log_path=/dev/stdout info_log_path=/dev/stdout debug_log_path=/dev/stdout