VS.NET 2010 (and above) Users Click Here   

Licensing FAQ
Software Updates
Support Forums
Feature Requests
About Us
Contact Us
Hosting Companies
Privacy Policy
Shopping Cart

ListNanny Change Log

The following notes are from the ListNanny.dll change log. They are not meant to be a complete description of every change, but more of an overview of different stages of ListNanny's development.


Version Date Description 25 OCT 2012 Minor updates. Tightened code. Released to public as v3.0.0.1 06 JUL 2012 Finished adding in all updates. 22 APR 2012 Fixed a small bug, when importing older, formatted definition files. 01 APR 2012 Filtered out inline parts for NDR checking, by making sure they are either text or message content types. 14 MAR 2012 Inc'd build number 05 MAR 2012 Fixed a small bug when recategorizing bounced based upon a key. 02 MAR 2012 Added the OriginalSubject property. 22 DEC 2011 Added some additional HTML parsing routines for better email address extraction. 20 DEC 2011 Added additional email address parsing code. 07 DEC 2011 Added decision tree checking. 12 NOV 2011 Speed Improvements 31 JUL 2011 Added additional searching for locations that could contain the original bounced email address. 25 JUL 2011 Modified some of the internal logic for better cleaning of plain text content. 25 JUL 2011 Modified some of the internal logic, for better HTML removal before NDR classification. 23 JUN 2011 Added the NDR.MatchedPatternCollectionType property. 16 JUN 2011 Updated version number. 15 JUN 2011 Fixed a bug to properly decode some delivery status text headers. 06 MAY 2011 Moved some internal patterns for better matching. 28 APR 2011 Added additional logic to compensate for original messages that are prefixed with a delimiter. 28 APR 2011 Matched a new border for finding the original message of the bounce. 05 APR 2011 Modified the internal HelpMessage to extract more helpful text from the NDR. 05 ARP 2011 Inc'd build numbers for testing. 31 MAR 2011 Updated the internal email address recognition logic to find other possible email addresses that were suspect bounced addresses. 25 MAR 2011 Fixed a bug in the ProcessingEngine class where it was possible to duplicate a NDR 09 MAR 2011 Exposed the CategorizeBounce( string key, NDRType newTypeClassification) method. 04 MAR 2011 Added the NDRPart.Hrefs() method. 10 JAN 2011 Updated for internal testing. 21 JUL 2010 Inc'd build number 26 APR 2010 Added another pattern used for finding original messages, inside of email bodies. 26 APR 2010 Added some additional logic to extract the bounced address in body parts 13 APR 2010 Added some internal logic to better match patterns. 13 MAR 2010 Exposed the PatternKey property. 13 JAN 2010 Updated some internal boundaries to better find the original message found in bounces. 23 JUL 2009 Fixed a bug in the OriginalMessageFromBody() method, that could throw a null exception. 22 JUL 2009 Inc'd build numbers for testing 22 JUL 2009 Added the ImportDefinitionFile() and ImportDefinitions() methods to the ListNannyLicense class. 22 JUL 2009 Added the NDR.OriginalMessageFromBody() for extracting the original message from the body. 20 MAY 2009 Inc'd for build purposes. 11 MAY 2009 Updated the internal definitions. 05 APR 2009 Increased the accuracy for matching the bounced address of AddressChange and AutoResponder bounce types. 01 APR 2009 Exposed the NDR.CategorizeBounce(...) method. 09 MAR 2009 Enhanced the code to better find the OriginalMessage object found in bouces. 11 FEB 2009 Enhanced some of the internal DSN code to parse the content faster. 10 FEB 2009 Exposed the ClassifyDSN(...) method 30 JAN 2009 Optimized some of the internal NDR patterns for additional flexibility 25 JAN 2009 Added the NDRType.None, to be used with unassigned NDRs. 21 JAN 2009 Optimized some of the email address recongintion code, to better recognize uncommon, but still technically formmated valid emails. 31 DEC 2008 Optimized some of the internal NDR patterns for additional flexibility 26 DEC 2008 Optimized some of the internal NDR patterns for additional flexibility 17 DEC 2008 Continued optimizing some of the internal pattern matching logic, for more accurate matching. 15 OCT 2008 Inc'd for build purposes. 15 OCT 2008 Added additional logic in the NDR parsing routine to handle Hotmails new bounce format. 27 SEP 2008 Optimized some of the internal pattern matching logic, for more accurate matching. 24 SEP 2008 Exposed the NDR.RemovePatternCollection(...) method. 22 SEP 2008 Exposed the NDR.RemovePatternByKey(...) method. 19 SEP 2008 Ignored DKIM-Signature, DomainKey-Signature, Received headers for NDR information 19 SEP 2008 Exposed the NDR.BodyIntroTextLength property so the developer can 16 SEP 2008 Optimized some of the internal NDR patterns for additional flexibility 13 SEP 2008 Added the ARFReport functionality to ListNanny 14 AUG 2008 Added the NDRMessage.DateTime() method that parses the Mime RFC date into a .NET DateTime structure. 07 AUG 2008 Added an addtional boundary for finding the original headers 13 FEB 2008 Inc'd for build purposes. 12 FEB 2008 Fixed a bug where an internal Regex caused ListNanny to go into a high CPU loop for a number of minutes. 12 FEB 2008 Added the NDRMessage.ReceivedDate() method, for finding the latest date the message was received. 22 DEC 2007 Updated the EmailAddress regex, used for matching email addresses 09 DEC 2007 Added the ProcessingEngine.DetectMBXDelimiter functionality, to automatically detect the mbx delimiters 12 NOV 2007 Added additional logic to handle the new scomp@aol.net/redacted@aol.com formatted bounces. 05 NOV 2007 Expanded the Address class to be more flexible for email address recognition. 03 NOV 2007 Expanded the underlying code to find the original recipient (bounced email address) in a new MailEnable formatted bounce. 31 OCT 2007 Added the ProcessingEngine.ProcessMBXFile( string mailboxPath, Encoding encoding, string delimiter ) overload (allows for a delimter to be set for non-standard mbx files). 27 SEP 2007 Fixed a bug where high end charactersets were not properly decoded in header values. 26 SEP 2007 Fixed a bug where is was possible for the bounced email address to return a trailing "]" after it's value. 14 SEP 2007 Removed duplicate blank lines in the plain text body to speed up pattern matching 13 SEP 2007 Updated the Address regular expression pattern to match aspNetMime's pattern 25 APR 2007 Added additional logic to handle new AOL formatted bounces. 25 APR 2007 Added additional logic to handle new AOL formatted bounces. 06 APR 2007 Added additional NDR patterns to ListNanny 07 MAR 2007 Fixed a bug where certain headers (like Subject) had anything after a ";" parsed into a parameters collection. This now becomes part of the value. 02 FEB 2007 Tightened some of the internal bounce patterns for more accurate matching 30 JAN 2006 Added additional logic to be better at finding bounced addresses. 27 OCT 2006 Expanded the decoding headers routine to handle headers with multiple encodings in the same value. 20 SEP 2006 Updated the NDRWebNotification class for more internal flexiblity. No external API was changed 19 SEP 2006 Added the NDRWebNotification class. 19 SEP 2006 Added the NDR.ParseBinary(...) and NDR.LoadFromBinary(...) methods. 21 AUG 2006 Added additional "original border" email recognition. 28 JUN 2006 Added the NDR.DefinitionVersion() method to return the version number of the Definition file. 21 MAY 2006 Added additional help text to exceptions thrown during the license loading process for easier troubleshooting. 08 MAY 2006 Fixed a bug where a null exception was thrown during parsing of the PLAIN Text part, if the body was optionally marked as Inline. 27 MAR 2006 Added NDR.RemoveNDRStringPattern(...) and NDR.RemoveNDRRegexPattern(...) 28 FEB 2006 Added the BeforeParseFile event to the ProcessingEngine.ProcessSmarterMailFile method so it is fired and allows the developer to choose if they want to process that individual smartermail email message 20 FEB 2006 Exposed the NDR.Classify and NDR.Reclassify() memebers.   Modified the ProcessingEngine.SmarterMail method to include more help message.   Modified the XMailBounce class to expose the [<05>] section in XMail bounces. 18 JAN 2006 Added the Index property to the ParseNDRDirectory event args   Incremented for build purposes 14 JAN 2006 Added the XMailBounce class 13 JAN 2006 Added the NDR.LoadLicenseResource() method 08 JAN 2006 Added the capability to natively process SmarterMail files.   Created and Exposed the ListNannyLicense class.   Increased the internal accuraccy of the QmailBounce class   Added the static Parsexxx(...) methods to the QmailBounce class.   Added the NDRType property to the DSNRecipient class.   Added native support for QMAIL bounce file format   Fixed a bug where it was possible to have duplicate email addresses in the BouncedSuspectEmailAddress property   Cleaned the bounced email address property. Removed whitepace and "<", ">" before and after the BouncedEmailAddress property

18 OCT 2005 Fixed a bug that handled a change in the .NET 2.0 Framework where UTF8 could drop high surrogate characters.

  Upgraded to v2.0

  Fixed a bug in BaseMessage.SaveToFile(...) where the text was not completely flushed to the file.

23 MAY 2005 Added the NDR.LoadPatterns(...) and NDR.LoadPatternsFile(...)

  Added the option to close the stream (which by default closes the stream) when the NDR object is loaded from a stream.

  Added the AllowPartiallyTrustedCallers attribute

  Added the BeforeParseFile event

  Added the following DSNRecipeint methods: StatusClassCode(), StatusSubjectCode(), and StatusDetailCode().

  Converted to Xml licensing, and fixed the "Could not aquire CSP provider" error.

  Added another "Message Begins Here" border

  Made sure the BouncedSuspectEmailAddresses also checked the Reply-To header for an email address.

  Added additional OriginalMessageText checking, to make sure the first line was a header.

  Added the DSN class

  Added better population for the HelpMessage.   Moved a "Spam Arrest" definition from Spam to ChallengeVerification

14 JUL 2004 Added the capability for exceptions to be trapped and ignored during ProcessDirectory


Added the LMail error class

  Fixed a bug where Decoding QP did not work correctly, if the message ended in "="

  Fixed a bug where ProcessIMAILBox did not raise the event for the last message.

  Added the NDR.ImportDefinition() overloaded method to accept just the string of Xml

  Added the ChallengeVerification NdrType

  Made NDRUtility public. was private

  Released as update

  Added the e.Delete() on the NDRParseDirectoryEventArg

  Released as 1.0

17 OCT 2003 Private Beta




Great component. Got it emailing an order listing and pulling details from the db based on your ‘emailing a user control’ example in 20mins! "

Mark Gledhill | Extreme Creations Ltd

Read more testimonials
ListNanny aspNetDNS aspNetEmail aspNetPOP3 aspNetMX IPMuncher aspNetMIME aspNetPING aspNetTraceRoute aspNetIMAP aspNetMHT