Fixed incorrect address rejections in certain cases of greylisting.
Added option (hexVeOptionDontSendNoopComments) to turn off NOOP comments during the SMTP session.
Created the hexVeErrBogusMxRecords error to indicate that the MX
records for a domain don't have valid IP addresses.
Created the hexVeSenderBlocked error to indicate that the SMTP server
is not accepting email because of the user's IP address, email address,
HELO domain, or some other reason.
Added ability to check for SMTP servers that accept all addresses and
do not reject bad ones. Simply add the new hexVeOptionTestForCatchAll
constant to Options.
Validations against such servers will set Error
to hexVeErrDetectedCatchAll. When you see this error, avoid wasting your
time on SMTP validations for email addresses at that domain.
Improved SMTP rejection error detection.
Fixed minor bug that resulted in occasional hexVeErrUnexpected errors
at the SMTP level.
Fixed bug that occasionally resulted in truncated SmtpSession
Corrected DNS check so that it sets Error
to hexVeErrNoMxForDomain when the email address has a domain literal and Options
Corrected the license check so that it retains the license information
in the case of a hexVeErrUnlicensedProcessors error.
Improved the DNS retry algorithm.
Changed SMTP validation to try next server (instead of just exiting) upon unexpected socket error.
Added workaround for VeriSign's DNS breakage for .com and .net domains.
Refined the DNS retry algorithm.
Changed the threading model to "Both" to make usage from .NET
more flexible. The component can now work in both single-threaded
apartments and multi-threaded apartments.
If you are upgrading to this version, you will need to re-register the
DLL by running the installation program or using RegSvr32. Windows 95
users will need to have Internet Explorer 4 or later installed for the
DCOM update it provides. You do not have to make any changes to your code.
Fixed buffer overread when checking short, invalid runtime keys. This
problem showed up only occasionally for users of languages that require
direct use of IClassFactory2 (i.e., C++, Delphi).
Removed a bit of debugging code that was inadvertently left in
the release build. The debugging code puts entries in the Windows
Event Log but does not otherwise affect functionality.
Significantly improved bad address detection by recognizing numerous
additional error conditions in the SMTP session.
Refined the SMTP algorithms and command sequence.
Created a new error value, hexVeErrorMailboxFull, to indicate that
the mailbox for the specified address is out of space. HexValidEmail now
recognizes the mailbox full condition and returns this error.
Added a registry key for specifying local nameserver addresses.
Added NOOP comments to the SMTP session to give mail server
administrators helpful information in case they have questions about the
session. The comments include a secure hash (SHA1) of your license information,
if any. This does not reveal your identity to admins or allow
Hexillion to track your validations. (HexValidEmail never
"phones home".) Rather, it facilitates communication in case
of a problem. If an admin has concerns about your session, he can send
us the hash. We can compare it to hash values in our database, figure
out whose license it is, and pass the concerns on to you.
about polite usage...
Fixed an address parsing bug that allowed periods at either end of an
address' local part.
Fixed a problem in which Validate would return a "domain does not
exist" error when in fact an A record lookup on the domain had
returned some other error.
Fixed a problem with instantiating HexValidEmail in MTS and COM+
packages. These environments do not support the IClassFactory2 licensing
interface, so HexValidEmail now falls back to using the regular
IClassFactory::CreateInstance method to create the instance of HexDns it
needs. Because HexValidEmail cannot use its runtime key for HexDns in
MTS/COM+ packages, you will need a separate license for HexDns in these
Improved license-checking code in several ways. The most visible
consequence is that the component will pick up license file changes
without requiring an IIS restart.
Added an anti-abuse
clause to the license agreement.
Fixed bug that caused the Validate method to continually retry MX
record lookups if the lookups failed with a non-authoritative
Improved runtime key handling. Now VB programs can be compiled with
early binding during the evaluation period. (Before, VB would generate a
"Permission denied" error. The workaround was to use late
binding during evaluation.) After obtaining a license file, you will
need to recompile VB programs in the presence of the license file so VB
can embed a permanent runtime key (thereby allowing distribution without
the license file).
- Fixed a bug in SMTP validation that caused Validate
to block well beyond the timeout period if all mail servers for the domain refused
- Refined the SMTP validation algorithm considerably, making it "try harder" to
contact a working mail server.
- Changed the use of VRFY and EXPN during SMTP validation to an option specified by
in Options. The use of
these commands does not affect validation outcome and may raise flags for server
Includes various tweaks and corrections.
1.0 beta 1 2000-01-25