Home :: Software Products :: Email Address Validation

PHP Edition
Price: $119.95 USD

Perl Edition
Price: $199.95 USD


PDF Formatted Document Programmer's reference

Requires Acrobat Reader
Get Acrobat Reader

Email Address Validation

Object Library
Email Address Validation

Do you collect Internet email addresses or accept addresses typed into a web form? If so, you already know the problems bad email addresses can cause. Effective validation requires an in-depth knowledge and the correct implementation of the Internet standards relating to email addresses and delivery protocols.

When you need robust validation with ease of use, our Internet Email Address Library delivers advanced capabilities through its object oriented interface. With just 2 lines of code, you can check the syntax, domain, and username of any email address.

Most Internet email address validations are either too simplistic, incomplete, or attempt to solve the problem using an overly cryptic regular expression. Unfortunately these type approaches fail more often than succeed. This class library provides a powerful tool that, when used responsibly, can be used to validate and verify most Internet email addresses. The library is ready for immediate use, has no external dependencies, and can be incorporated in to your new or existing scripts in minutes. Using the library you can ...

  • Specify and fine-tune the validation level to perform on any query.
  • Perform full syntax and rule checking of any address based on current Internet standards.
  • Quickly identify invalid top level domains, private, and unreachable domains.
  • Determine if the specified email address is from a well known free email domain.
  • Issue realtime DNS queries to ensure the domain exists and retrieve the MX records pointing to its mail servers.
  • Issue realtime SMTP requests to contact the domain's mail servers and see if they will accept mail to the address.
  • Perform "catch-all" checking to determine if the mail server accepts all mail sent to the domain.

Parsing email addresses. To validate an address you must first determine whether the email address could be valid. Correctly validating the syntax of an email address is not complex once you understand what rules to apply. We accomplish this by fully parsing the address and applying syntax rules according to the following Internet standards and recommendations: RFC 2821, RFC 2822, RFC 1918, RFC 1035, RFC 1123, RFC 1138, RFC 1148, RFC 1327, and RFC 2156.

Beyond syntax validation ... DNS lookup. When the address passes syntax evaluation the library gives you the option to reject it prior to DNS validation. The address may be rejected if it specifies a well known free email or private domain, contains routing information, uses domain literals, or does not specify a recognize top level or country code domain.

With the library's DNS resolver object you can validate the address' domain, easily spotting mistyped or falsified entries. More than just MX mail server records ... the DNS resolver object can retrieve any DNS record for the domain and can be used as a standalone object in its own right.

Not all domains contain MX records yet they are still valid and can receive email. While most domains do have DNS MX record entries some do not. These issues are addressed in RFC 821 and RFC 2821. Our library can contact these mail servers but gives you the option to reject the address when there is a valid A record but no MX record.

SMTP server query and validation of the email address recipient. When the email address' mail server has been resolved the library can then contact it to attempt recipient name verification. Not all mail servers will complain about an unknown recipient, but many do. Many mail servers will accept email to any recipient within the domain and will then resolve the user name at the "local delivery" level, this is known as a "catch-all" delivery. Likewise, many mail servers will clearly identify invalid or unknown recipients.

Our library can correctly identify these delivery scenarios by correctly addressing the remote mail server and interpreting the SMTP return codes without using the often disabled SMTP VRFY or EXPN commands.