docker-msmtpd
                                
                                
                                
                                    docker-msmtpd copied to clipboard
                            
                            
                            
                        Lightweight SMTP relay Docker image using msmtpd
About
Lightweight SMTP relay using msmtpd as a Docker image.
Note
Want to be notified of new releases? Check out 🔔 Diun (Docker Image Update Notifier) project!
- Features
 - Build locally
 - Image
 - Environment variables
 - Ports
 - Usage
- Docker Compose
 - Kubernetes
 - Command line
 
 - Upgrade
 - Contributing
 - License
 
Features
- Run as non-root user
 - Latest msmtp/msmtpd release compiled from source
 - Bind to unprivileged port
 - Multi-platform image
 
Build locally
git clone https://github.com/crazy-max/docker-msmtpd.git
cd docker-msmtpd
# Build image and output to docker (default)
docker buildx bake
# Build multi-platform image
docker buildx bake image-all
Image
| Registry | Image | 
|---|---|
| Docker Hub | crazymax/msmtpd | 
| GitHub Container Registry | ghcr.io/crazy-max/msmtpd | 
Following platforms for this image are available:
$ docker run --rm mplatform/mquery crazymax/msmtpd:latest
Image: crazymax/msmtpd:latest
 * Manifest List: Yes
 * Supported platforms:
   - linux/amd64
   - linux/arm/v6
   - linux/arm/v7
   - linux/arm64
   - linux/386
   - linux/ppc64le
   - linux/s390x
Environment variables
TZ: Timezone assigned to the container (defaultUTC)PUID: Daemon user id (default1000)PGID: Daemon group id (default1000)SMTP_HOST: SMTP relay server to send the mail to. requiredSMTP_PORT: Port that the SMTP relay server listens on. Default25or465if TLS.SMTP_TLS: Enable or disable TLS (also known as SSL) for secured connections (onoroff).SMTP_STARTTLS: Start TLS from within the session (on, default), or tunnel the session through TLS (off).SMTP_TLS_CHECKCERT: Enable or disable checks of the server certificate (onoroff). They are enabled by default.SMTP_AUTH: Enable or disable authentication and optionally choose a method to use. The argumentonchooses a method automatically.SMTP_USER: Set the username for authentication. Authentication must be activated with theSMTP_AUTHenv var.SMTP_PASSWORD: Set the password for authentication. Authentication must be activated with theSMTP_AUTHenv var.SMTP_DOMAIN: Argument of theSMTP EHLOcommand (defaultlocalhost)SMTP_FROM: Set the envelope-from address. Supported substitution patterns can be found here.SMTP_SET_FROM_HEADER: When to set a From header. Can beauto,onoroff(defaultauto)SMTP_SET_DATE_HEADER: When to set a Date header. Can beautooroff(defaultauto)SMTP_REMOVE_BCC_HEADERS: Controls whether to remove Bcc headers. Can beonoroff(defaulton)SMTP_UNDISCLOSED_RECIPIENTS: When set, the original To, Cc, and Bcc headers of the mail are removed and a single new header lineTo: undisclosed-recipients:;is added. Can beonoroff(defaultoff)SMTP_DSN_NOTIFY: Set the condition(s) under which the mail system should send DSN (Delivery Status Notification) messages as comma separated values. Available values areoff,never,failure,delayandsuccess(defaultoff)SMTP_DSN_RETURN: Controls how much of a mail should be returned in DSN (Delivery Status Notification) messages. Can beheaders,fulloroff(defaultoff)
💡
SMTP_USER_FILEandSMTP_PASSWORD_FILEcan be used to fill in the value from a file, especially for Docker's secrets feature.
💡 More info: https://marlam.de/msmtp/msmtp.html
Ports
2500: SMTP relay port
Usage
Docker Compose
Docker compose is the recommended way to run this image. You can use the following docker compose template, then run the container:
docker compose up -d
docker compose logs -f
Kubernetes
To install on a Kubernetes cluster, you can use the following kubernetes deployment template, then create the deployment:
kubectl apply -f deployment.yaml
Command line
You can also use the following minimal command:
$ docker run -d -p 2500:2500 --name msmtpd \
  -e "SMTP_HOST=smtp.example.com" \
  crazymax/msmtpd
Upgrade
Recreate the container whenever I push an update:
docker compose pull
docker compose up -d
Contributing
Want to contribute? Awesome! The most basic way to show your support is to star the project, or to raise issues. You can also support this project by becoming a sponsor on GitHub or by making a PayPal donation to ensure this journey continues indefinitely!
Thanks again for your support, it is much appreciated! :pray:
License
MIT. See LICENSE for more details.
