SMTP Errors on Demand
Test your SMTP clients by getting exact SMTP error responses of your choice without any prior configuration or complicated setup.
No more tedious messing with configurations for postfix, smtp-sink, exim, or sendmail, trying to make them go wrong in specific ways!
Embeddable Server
BadSMTP is written in modern Go, so expect instant feedback from a single static-binary, small-footprint server ideal for running locally or embedding in your continuous integration pipelines and test suites.
Super high performance, massive parallelism, instant responses, all with zero config, though you can tune it as you like.
Non-delivery Guarantee
Secure & Private — BadSMTP makes no outbound connections and will never deliver messages, so there's no need to worry about your development and testing messages leaking to real recipients.
Believes your lies — authentication successes or failures, DKIM mismatches, SPF failures, which ever way you like!
Lightning Fast, or Dismally Slow
Built for speed with a modern tech stack, BadSMTP consistently returns reliable errors and fails to deliver thousands of emails without breaking a sweat.
Want to know what happens when your network is slow? On-demand timeouts and slow responses are ready... and waiting.
Developer Friendly
Simple setup with zero configuration required. Works with any SMTP client right out of the box.
Integrates seamlessly with Laravel, Symfony, Rails, Django, Apple Mail, Thunderbird, Outlook and any other framework or application that sends email.
GPLv3 license, but you can create extensions under your preferred license without modifying the core code.
Local or Hosted
Run BadSMTP locally, in your CI, or point it at our hosted service (coming soon!)
Optionally write messages to a mailbox folder using maildir format for compatibility with existing tools.
You can ignore BadSMTP's extensible architecture, or build extensions to link it to your own systems, call APIs, etc.