catchall is a simple all-in-one mail server for catching all email and funnelling it to a single catchall address which is available for pickup.
Use as your own personal "mailinator" or simply because you want tons of throw-away email addresses when throw-away domains are not permitted.
This is not another SquirrelMail or Roundcube replacement. I wanted minimal setup and container portability for a single user to receive email at multiple throw-away addresses for throw-away services.
- All-in-One SMTP server (receiving) and POP3/IMAP server (retrieving)
- Docker Secrets compatibility
- Provides TLS services by leveraging Let's Encrypt as a sidecar
- Automagic restart when new certificates are found
- HTTP UI / API
My first goal was to get emails available for pickup and import by other services (Gmail, specifically). Providing a web-based UI or API means additional processes (which there already are a lot), and databases to keep consistent with the mail spool on disk.
- Sending email
This was just designed as a "mailinator"-clone, so I have not implemented sending emails.
Space-separated list of alias domains to also receive mail.
ALIASES="contoso.home fabrikam.com"
The name of your catchall account. All emails (not sent to /dev/null
) will
be aggregated and forwarded to this account.
# default
CATCHALL=catchall
Space-separated list of email addresses to send to /dev/null
.
DEVNULL="[email protected] [email protected]"
Primary domain to accept email.
DOMAIN="contoso.com"
Hostname to present. This MUST match the Common Name on your SSL certificate.
HOSTNAME="mail.contoso.com"
Set the password for your catchall account.
If you do not specify a password (or password_file), the container will automatically generate a very complex and secure one for you and print to the console.
PASSWORD="hunter2"
# or
PASSWORD_FILE="/run/secrets/catchall-password"
When certbot successfully renews a certificate, you can be sent a slack notification as confirmation.
SLACK_URL_FILE="https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
Number of 2-second iterations to wait for certificates before failing startup.
# default
STARTUP_DELAY=5
tz
-compatable timezone for log files and timestamping. Please see the
list of tz database time zones.
# default
TIMEZONE="Etc/UTC"