A great writeup is here
Here is an example for my own purposes:
user@ ~ $ swaks --to user@mochabomb.com \ > --from=thing@mochabomb.spiffy > --auth \ > --auth-user=testuser@mochabomb.com \ > --auth-password=mypassword \ > --server mochabomb.com:587 === Trying mochabomb.com:587:25... === Connected to mochabomb.com:587. <- 220-vps2.mochabomb.info ESMTP ChickenLips Byte #Transporter version 12.0.314.159.26.53.59-2 rev 17 build 5682.126-05a Tue, 01 Sep 2009 23:05:59 -0700 <- 220- No one is authorized to use this fine system to transport unsolicited, <- 220 and/or bulk e-mail and other cruft. -> EHLO mydesktopbox.gotdns.com <- 250-vps2.mochabomb.info Hello adsl-##-###-##-147.dsl.pltn13.sbcglobal.net [##.##.##.147] <- 250-SIZE 52428800 <- 250-PIPELINING <- 250-AUTH PLAIN LOGIN <- 250-STARTTLS <- 250 HELP -> AUTH LOGIN <- 334 VXNlcyahooWU6 -> YWeWdogpileLm1vYexcite@homejb20= <- 334 UGFzyeehawQ6 -> TDgoogleyM= <- 235 Authentication succeeded -> MAIL FROM:<- 250 OK -> RCPT TO: <- 250 Accepted -> DATA <- 354 Enter message, ending with "." on a line by itself -> Date: Tue, 01 Sep 2009 23:05:57 -0700 -> To: user@mochabomb.com -> From: thing@mochabomb.spiffy -> Subject: test Tue, 01 Sep 2009 23:05:57 -0700 -> X-Mailer: swaks v20061116.0 jetmore.org/john/code/#swaks -> -> This is a test mailing -> -> . <- 250 OK id=1Miiym-0001Mr-8O -> QUIT <- 221 vps2.mochabomb.info closing connection === Connection closed with remote host.
Pretty simple package - Debian the package is "swaks".