I found an SMTP server in Java:
https://code.google.com/p/subethasmtp/I want to offer a bounty of 20000 NXT to modify it to become a hardcoded NXT plugin proof of concept, NXTsmtp
The goal is to get this to where we can submit it to jean-luc for inclusion in an upcoming release, without making him yell at us for sending him junk
For now, there is too much that is undefined, so I just want a few simple things. Need a way to make its input be contained within an AM. For now we can limit to 1000 byte message + destination. The idea is that at some point in the future, there will be NXT VM scripts that output an AM which should trigger sending an email.
A reasonable format needs to be defined for the AM, to start with I am thinking a code for plugin ID, followed by size, followed by plugin specific data. Since we havent defined the layers yet, any well defined format is fine. We will just tweak it when we get better format definitions. A way to create the AM from text file is also needed and this code is intended to be included in clients, eg. read text file, format AM data, submit AM.
The second part is to figure out where in the NXT core we need to put a check for AM triggered plugin invocation. This code also needs to get a transaction ID (which would be the hash of content and email address) and put it into the blockchain so all the nodes can verify it was sent from the forging node.
I am not sure if subethasmtp is a totally self-contained smtp implementation, if it is not, we cant use it for hardcoded NXTplugin. If it turns out that the subethasmtp is not suitable or there is a better one, then please find and use the better one. I am not sure how many people want a decentralized way of sending email, especially when any node can read it. This is my attempt at getting a reference implementation for a hardcoded plugin. No need to worry about encrypting/decrypting AM that contains email.
James
P.S. I also authorize 500 NXT bounty for the first 10 NXTplugin ideas with corresponding source code that does anything remotely useful, eg. you can think of a situation where you would actually use it. Submissions need a description of the idea and when you would use it and URL to source.