SWAKS: the SMTP Swiss Army Knife

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 RCPTSend via a particular server:
swaks -f you@example.net -t someone@example.com \
--server mail.example.comTest user authentication for a smarthost:
swaks -tls --server example.com -f you@example.com \
-t someone@example.net -ao --auth-user=youTest 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.