Docker container with a catch-all SMTP configuration to ingest all mails thrown at it
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

SPAMSINK - a Docker container with an ingest-it-all SMTP service

This is a Debian based setup that runs the Postfix tool "smtp-sink" to accept every mail that is thrown at it via SMTP.


The tool "smtp-sink" is bundled with Postfix and has been created to conduct SMTP protocol testing as an SMTP receiver (in combination with "smtp-source", which is the sender in a test setup).

For doing SPAM related security research it can be used to create a "receive it all" kind of setup, the catch-all not being limited to specific domains or email addresses.


Install the container with docker pull hmlio/spamsink.

Run the container with two environment variables, a volume mapping and a port mapping:

docker run -d -e SINK_HOSTNAME="" -e SINK_PORT=2525 -v /tmp:/opt/spamsink/mails -p 25:2525 hmlio/spamsink

The environment variable set as "SINK_HOSTNAME" will be used for HELO/EHLO responses of the SMTP server.

The environment variable set as "SINK_PORT" will be the port the container will listen on and should match the port forwarding configured with the "-p" switch.

The volume mapped into the container as /opt/spamsink/mails will be the folder where the received mails will be saved, one file per email, the naming configured to be "dincoming-%Y%%m%d%H%M.some_pseudo_random_id>"

Once the container runs, a connection can be established:

$ telnet localhost 25
Connected to localhost.
Escape character is '^]'.

Have fun! :-)