Over the summer of 2013, I wrote a mail exchanger in Go. I had been looking at the language tutorial and it intrigued me how it trivialized concurrency in programs. I was also studying the email standards to improve my skills as a postmaster and server administrator. So, I thought it would be a good idea to create a mail exchanger that could hold a conversation with an actual SMTP client in order to cement my knowledge.
The code is available on my GitHub. However, I'm posting about mailman here because GitHub isn't a great front for a tiny personal project like this.
That isn't actually a download link, but a link to the repository page. You can probably figure out the rest.
Mailman doesn't have a saving mechanism yet. It calls a stub with the mail contents, but just throws it away thereafter. You could write it to a file pretty trivially though. Mailman is supposed to come with a client so that it can test itself, but I haven't gotten to that either.