MailWrench - MailSend's Heir Apparent

I had been supporting MailSend for about fourteen years. I had regularly fixed bugs and added a feature here or there. It was showing its age regarding modern mail agents that could leverage secure SSL connections to SMTP servers. I had written up a document on using the open source program STunnel as an intermediary between MailSend and SMTP/SSL servers, but that just seemed to be very kludgy. It was kludgy and I was taking money for a program and telling people how to use a free program to get more out of it. That didn’t seem right.

I was looking into using SSL libraries with MailSend when I got an email from a frequent customer. The customer had explained that they used to purchase copies of MailSend for third parties who used their systems. I knew this to be true as I frequently saw them registering a few copies here and there throughout the year. They had asked if I could support Windows authentication with Microsoft Exchange servers. I said that I’d look into it.

I had toyed with the idea of rewriting MailSend in C#. It seemed to have all of the features that compiled AWK gave to me, as well as access to the .NET subsystem. After a bit of research, I found that the standard .NET SMTP interface supported both the Exchange authentication that my customer had requested and it supported the Secure Sockets Layer.

Instead of creating a new version of MailSend, I wanted to come up with a unique name. The new tool might later incorporate reading POP3 or IMAP email, so I didn’t want to limit the name with the word “Send.” I landed on the name MailWrench … an email tool. I was able to secure the domain name immediately. I went to work first designing the feature set, then coding. Here is a help screen detailing MailWrench’s options:

MailWrench v 2.00
by Jim Lawless -
	MailWrench [options]    where options are:
 -h                   Display this screen
 -s subject           Specify subject
 -a filename          Attach filename   
 -f filename          Attach files in list

 -smtp smtp_addr      Specify SMTP server address
 -port number         Specify port ( default is 25 ) 
 -to to_address       Specify 'To:' e-mail address
 -from from_address   Specify 'From: address
 -file text_file      Name of text file to send
 -msg string          Specify immediate message to send via the command-line

 -filter              Take text file input from the console stdin device
 -out                 Redirect output to specified filename
 -suppress            Suppress output ( except for error messages )
 -cc to_address       Carbon-copy one recipient; Can be specified multiple times
 -ccf filename        Carbon-copy all recipients listed in filename
 -bcc cc_address      Blind-cc one recipient;  Can be specified multiple times.
 -bccf filename       Blind-carbon-copy to all recipients listed in filename
 -receipt             Request return-receipt
 -disp                Request disposition notification
 -ch header value     Add custom header(s)
 -html                Send file as HTML
 -timeout             Maximum timeout ( in seconds ) 
 -img number filename Attach an image as an inline resource in HTML
 -priority code       Set priority. { low, normal, or high }
 -ntlm                Perform NTLM authentication with the mail server
                      Used for SMTP authentication.
 -id loginID          User ID
 -password password   User's password
 -domain domainID     Used if authenticating explicitly against a Windows domain
 -ssl                 Use a Secure Sockets Layer connection (SMTPS)
Options can be combined in a text file to save command-line space.
See the documentation for detailed information.

MailWrench sold a few copies here and there right away, but it never reached the popularity of MailSend. The customer who had requested the NTLM features never did register a copy of MailWrench. They were quite diligent about paying for copies of MailSend, so I suspect that in the time it took me to write MailWrench, they had found another command-line emailer that met their needs.

With MailWrench, I wanted to try out a new registration processor, just for this product. I had been happy with RegSoft, but there were reasons that I thought it wise to investigate a different payment processor. I’m afraid I can’t remember what those reasons were except that it might’ve pertained to the selling of their company. I’d heard good things about a new payment processor, FastSpring, so I gave them a try. They were a bit different than RegSoft, but they were very professional from the get-go. I signed up with them and I saw regular sales of MailWrench.

The sales of the product were low enough that it didn’t seem to be wise to keep trying to sell it, so I pulled the plug in July of 2012. I placed the product’s source code on my Github page. I changed the compiled version so that it was free of charge. Even at free, not many were interested in it.

Because it was written in C# targeting .NET, I did experiment running MailWrench under what is now called MacOS using Mono and, after a bit of certificate setup, it ran perfectly. As a side note, I believe that the .NET SMTP libraries I used are now deprecated. There are new libraries that are in favor. If I needed to use MailWrench nowadays, I would likely have to give it a bit of a face-lift.

I am still not quite sure what to make of this experience. Certainly development tools were maturing. Email integration was becoming just a standard set of libraries in most programming language offerings. My market was likely no longer a niche.

It was worth my time as I thought that I had everything going for this product. I had some primary market research from one customer indicating that there was a need for Windows authentication. I’d had others ask for the SSL integration, so that was proof, too. In planning for the rollout of the product, I had taken the time to come up with a unique name … something that permitted me to secure my own unique “.com” domain name. That really didn’t do much for me. I set up shop with a new registrar who was really great to work with. The problem was that the sales were just too low.

Withdrawing MailWrench ( and ScreenKap ) from public sales meant that I was no longer an independent developer of desktop software. Oh, I’ve been writing more software. I just don’t charge for it, nor do I necessarily promote it.