SubEthaSMTP is a Java library which provides a receptive SMTP server component. By plugging this component into your Java application, you can easily receive SMTP mail using a simple abstract Java interface. This component can be used in almost any kind of email processing application. Hypothetical (and not-so-hypothetical) uses include: * A mailing list manager (ie, SubEtha Mail) * A mail server that delivers mail to user inboxes * A mail archiver like Mail Archive * An email test harness (Implemented in this project. It's called Wiser.) SubEthaSMTP's simple, low-level API is suitable for writing almost any kind of mail-receiving application. Here's some sample code showing how it might be used:List listeners = new ArrayList(); listeners.add(myListener); SMTPServer smtpServer = new SMTPServer(listeners); smtpServer.start();The MessageListener interface is a simple callback, that gets notified for every RCPT TO in a mail exchange. It is available under a LGPL license. Message was edited by: email@example.com
- Posted by: Jon Stevens
- Posted on: October 10 2006 05:43 EDT
- What about the AUTH command? by James Imber on October 10 2006 10:12 EDT
- Why not use mina? by James Imber on October 10 2006 10:52 EDT
- Re: SubEthaSMTP 1.1, SMTP server component in Java, released by Davide Baroncelli on October 10 2006 10:58 EDT
I've seen that you do not support the AUTH command id there a reason for this?
Thanks for your feedback! It's possible for you to write your own commands for any missing functionality that you wish to implement. We also accept any well written code contributions. =) In addition, the point of this server is not to be restrictive in what it accepts. That is why it is billed as a 'receptive SMTP server component'. We want you to use it as a base library and extend it however you need. We are not trying to re-implement Apache James. We are trying to provide an extensible framework library as the basis for future projects. Cheers!
Why not base the protocol upon mina (http://directory.apache.org/subprojects/mina/index.html) Mina is a specialized nio tcp/ip and udp stack (It also handles TLS) and will probably be promoted to a top level apache project on the next board meeting. You can download mina 1.0 and take a look at the examples.
I originally implemented the server portion by using another framework which I think was the pre-mina framework. I think it was Netty. It sucked. It was buggy and just wasn't easily extensible in so many ways. The next major version of the SMTP server will have a re-factored IO layer because (SubEtha Mail) needs it for the postfix tcp server so I don't have to maintain two separate servers with different IO codebases. Not sure if I will use Mina, but now that it is 1.0, I will take a look at it again. I gotta say that one thing that really bugs me about Mina is that the website has a ton of broken links (including the link to its source code repo at the bottom of the index page). For something that is considering itself a 1.0 project, that really bothers me. Let's work hard to create quality software and documentation. jon
SubEthaSMTP is a Java library which provides a receptive SMTP server component. By plugging this component into your Java application, you can easily receive SMTP mail using a simple abstract Java interface.I remember that one of the evolutions of J2EE 1.4 and JCA 1.5 was being capable to do similar things with an SMTP resource adapter plugged to a jms destination and MDBeans on the other side. Has any real work been done on this side? Are there any real smtp rar available around? Could this project offer this deployment possibility as an option?