RFCMail is a collection of Perl modules which can be used to implement a number of mail-related things, such as SMTP honeypots for spam analysis. Its core business is that of an MTA, so most of the modules relate to SMTP in some way. It does not
... [More]
major in message text handling or message store (mailbox) management. The author has chosen to re-implement the core SMTP functionality, rather than re-use existing implementations, so as to allow much greater flexibility in how SMTP is handled.
At this particular point in time, it has a fully functional SMTP server which is capable of acting as an SMTP honeypot. This may prove of some interest to those conducting anti-spam research. Although much of the existing functionality is clean and well documented, the overall project is still a shambles, undergoing significant restructuring as new and better ways of structuring the code are discovered. It has not settled down into a pattern that can be released and maintained, so it is currently only suitable for ad hoc tasks, not as the basis for long-term software products.
The ultimate project goal is to produce a library of parts capable of implementing a fully functional mail server (MTA) with a very large degree of flexibility. This flexibility should make it possible to experiment with bleeding-edge anti-spam techniques and mail delivery protocols. Perl is well-suited as a base language for this purpose, since it allows rapid development and easy combination of modules to form a useful whole. On the other hand, the project is not expected to suit the needs of those who just need an ordinary, solid MTA that scales well (although the project owner will be quite happy if this end can be met).
This project also aims to set extremely high (to the point of fastidious) standards in code and documentation quality, and standards compliance.
This project has only just been migrated to Google Code (from origins as a private project), and a significant amount of work remains to be done before the project will be accommodating to prospective users and contributors. It also remains to be seen how much time the project owner can dedicate to this task! At the moment, the suggested way to introduce yourself to it is to check out the trunk, then read the documentation in pm/RFCMail/ESMTP/Server.pod. Also, look at bin/honeypot-smtpd.pl for a simple but useful application (which can be launched from inetd or similar if desired). Note that this application requires the well-known Net::DNS module. [Less]