SWAKS is a general purpose testing tool for SMTP. For basic SMTP testing it’s a more convenient, scriptable alternative to running a transaction by hand, but it also lets you test things that are difficult to do manually, such as authentication or TLS encryption.
It’s a perl script that installs fairly easily on OS X or any Linux/unix system (and can be installed on Windows, if you have perl installed there).
It’s pretty well documented, but it can be a bit overwhelming to start with. Here are some simple recipes:
Send a test email:
swaks -f you@example.net -t someone@example.com
Check to see if a recipient exists:
swaks -f you@example.net -t someone@example.com \ --quit-after RCPT
Send via a particular server:
swaks -f you@example.net -t someone@example.com \ --server mail.example.com
Test user authentication for a smarthost:
swaks -tls --server example.com -f you@example.com \ -t someone@example.net -ao --auth-user=you
Test to see if a server supports opportunistic TLS:
swaks -tls -s mail.example.com -f you@example.net \ --ehlo your.host.name --quit-after FROM
(The backslashes are just there to split a single command line into two, so you can read it easily on this narrow blog).
SWAKS has a lot of other tricks too – adding headers, using specific protocols and ports, attaching content. It’s a very useful tool, and gets even more so when you add a little bit of shell scripting to automate your testing further.
Don’t forget to run “swaks –support” to see which extra Perl modules you can install to round out the capabilities of swaks.
It’s in EPEL if you’re using RedHat/CentOS/etc.
Yes! It’ll run out of the box with minimal dependencies, but a lot of the more useful features (authentication and TLS especially) need those extra modules.
Swaks is awesome. I use it almost daily to run thru new policy testing.
Definitely, It’s always in Postmaster toolbox 🙂
This looks awesome. Thanks for the recommendation.