The name is jaev …

The name of who/what is jaev? The jaev framework is my first open source project! Jepp, I joined the community and giving something back after years of using the frameworks of other people.

What does jaev do? The name jaev is the abbreviation for java (advanced) email validation. So the framework does validate e-mails. Sounds quite boring, isn’t it? Of course not!

The name of who/what is jaev? The jaev framework is my first open source project! Jepp, I joined the community and giving something back after years of using the frameworks of other people.

What does jaev do? The name jaev is the abbreviation for java (advanced) email validation. So the framework does validate e-mails. Sounds quite boring, isn’t it? Of course not! There are some quite good tools for e-mail validation like the one in the Apache commons validator project (I “borrowed” some test cases there). But the e-mail validation in java was quite shallow. If you want to have a more advanced validation, i.e. of the domain, you’ll had to do it yourself. The jaev framework tries to fill this gap.

It provides facilities to validate the syntax of an e-mail address with including addresses with names like Niclas Meier <niclas.meier@example.com> (I confess the handling of comments in e-mail addresses has still some flaws, but it’s not so important I guess). This is obligatory but the jaev framework offers quite more.

With the jaev framework you’ll may check the domain of the e-mail address. The framework uses a local (or server) copy of the IANA top level domain database (http://data.iana.org/TLD/tlds-alpha-by-domain.txt) to validate the top level domain. If the top level domain is okay the DNS database will be queries if the domain exists and has MX entries. If a domain has no MX entries you’ll have to assume that you will could not relay an e-mail message to the e-mail address. The mail server uses the same mechanism.

A very important feature of the jaev framework is: You have the choice! You are receiving a Result object as outcome of the validation process. The Result contains a code, which specifies the details, and a validity level which specifies the level of validity of an e-mail address. I.e. SYNTAX suggests that an e-mail address is syntactically valid but the domain and account may be invalid. The maximum validity is ACCESSIBLE. With ACCESSIBLE validity the jaev framework was able to verify the existence and accessibility of the e-mail address on the MTA of the e-mail domain.

This is the last big feature of the jaev framework. The framework can connect to the MTA specified in the MX entry of the domain and tries to send an e-mail to the e-mail address. If the mail transfer can be initiated the framework will abort the process, no mail will be send, but we can assure that the e-mail account exits.

Around the three step validation mechanism the framework offers quite simple and extendible construction and configuration mechanisms, examples for JSF, Tapestry 5 and Flex & BlazeD and different acceptance strategies. Timeouts may be applied on different levels and operations, so you can assure that you’ll get a Result in a defined amount of time.

I think this is quite a handy package. And I spent lots of my spare time the last four weeks to bring this to life. Maybe someone out there agrees with me and uses the framework in his application.

If you encounter some problems or you would like to contribute/request some features you may post them to the google group or to the issue management system. Maybe there is someone out there who is firm in ANTLR which the jeav framework uses for e-mail parsing.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>