Brussels / 31 January & 1 February 2026

schedule

BadSMTP – the reliably unreliable mail server


I'm the maintainer of a very popular email client library, PHPMailer, and have found that it's difficult to test reliably because mocks get overcomplicated and unrepresentative, and it's difficult to configure mail servers to produce specific errors, for example to test what happens in your client if the server rejects a message with an unknown user, greylisting, spam filter, or authentication failure response. To this end I have created BadSMTP, a mail server written in Go that produces specific errors on demand, easily driven by client configuration alone. It's a single, standalone binary, designed to run in CI systems, or as part of a larger system along the lines of mailhog. Essentially I want to do for SMTP what badssl.com does for TLS. This talk is a simple overview of the project, why it was needed, and how to use it.

Speakers

Photo of Marcus Bointon Marcus Bointon

Links