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
https://github.com/docker-mailserver/docker-mailserver should be able to do it.
if i remember this in 6 weeks i’ll check the setup at work.
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:
dovecot.conf
passwords
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
This sounds like what I want. Did you make it work or are you still working on your PhD dissertation to qualify for email server setup training like me? 😕
Piggybacking on this question: any solution that provides really good indexing on those local mails, for fast wildcard searching?
I can’t give direct experience here, but this is exactly the use case I’ve been meaning to spin up mailpiler for: https://www.mailpiler.org/. One of these days that will rise to the top of the priority list.
Notmuch indexes and lets you tag things. You usually integrate it with emacs as the front end but its usable on it’s own.