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

aspNetEmail Change Log

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



Version Date Description 01 SEP 2011 Added and exposed the BeforeSocketSend event. 31 AUG 2011 Added some additional loggging statements to the HtmlUtility class. 31 AUG 2011 Added some additional loggging statements to the HtmlUtility class. 31 AUG 2011 Added some additional loggging statements to the HtmlUtility class. 22 AUG 2011 Added the RequireRecipients property. 17 AUG 2011 Fixed a bug in the EmailMessage.Encode(text) routine. 12 AUG 2011 Added the PNG value to the PhotoType enum. 12 JUL 2011 Added addtional functionality to detected forwarded messages, that were multipart, but still only have a text mime part, and not html part. 23 JUN 2011 Added the iCalendar Properties .Add( string propertyName, string propertyValue ) overload. 06 JUN 2011 Added additional logging statements to the log file. 03 MAY 2011 Exposed the CheckNewLines property as a .config appSetting entry. 03 MAY 2011 Inc'd build numbers. 03 MAY 2011 Optimized some of the internal base64 encoding code. 28 APR 2011 Wrote a custom base64 encoder for better performance than the native .NET implementation 02 APR 2011 Added the Amazon Ses class. 25 MAR 2011 Added additional logging for DNS server checking under the DirectSend class. 22 JAN 2011 Added the SenderAddress and SenderName properties 21 JAN 2011 Added the ReplyToAddress and ReplyToName properties 06 DEC 2010 Released as Production Install 30 NOV 2010 Testing builds 28 NOV 2010 Custom build with the .LoadLicense2() method. 27 NOV 2010 Custom build with the .LoadLicense() method. 12 NOV 2010 Requested Demand() permissions for Resolver code. 02 NOV 2010 Added some internal charset checking for reading embedded object from MHT files, and converting them to an email. 26 OCT 2010 Added the CharSet property to the EmbeddedObject class. Also improved some of the internal MhtUtility code to handle poorly formatted mht content. 05 OCT 2010 Added additional iCalendar control to how the iCal is added to the EmailMessage object. 05 OCT 2010 Added the EnableUndisclosedRecipient property. 14 SEP 2010 Upated AUS Central Standard Time (Darwin) and Cen. Australia Standard Time (Adelaide) rules 13 SEP 2010 Made a modification for AUS Eastern Timezone 21 AUG 2010 Added Faster response checking from the Smtp server for invalid reply codes 04 AUG 2010 Added some additional log statements, when the underlying socket is being reads. 04 AUG 2010 Modified the Regex in the HtmlUtility class to better parse html attributes without quotes, yet with spaces. 21 JUL 2010 Added the [XmlIgnore] attribute to the Components and Properties properties of the iCalendarComponent. This prevents duplicate properties from being output. 21 JUL 2010 Added the Serialize(...) methods to the iCalendar object, and the static Deserialize(...) methods. 18 JUL 2010 Modifed the Regex in the HtmlUtility class to better parse invalid html tags. 05 JUL 2010 Added the AppendBodyPartText methods to the EmailMessage object. 02 JUL 2010 Modified the internal email address parser for edge case email addresses. 24 JUN 2010 Modified some of the internal licenseing code for better performance. 24 JUN 2010 Inc'd build numbers 24 JUN 2010 Inc'd build numbers 24 JUN 2010 Inc'd build numbers 17 JUN 2010 Updated internal licensing logic to prevent the license from being reloaded duplicate times. 08 JUN 2010 Exposed the InvalidPathChars array on the EmailMessage class. 07 JUN 2010 Added the EmbedImageOption to the MhtUtility class. 02 JUN 2010 Added an internal validation check for the .CheckNewLines property, to increase performance. 28 MAY 2010 Added the Sender config option. 28 MAY 2010 Added the Sender header. 28 MAY 2010 Added some new line checks to some specific headers. 28 MAY 2010 Added the ReversePath as property to be set from the .Config file. 26 MAY 2010 Added the CssOption property to the MhtUtility class 26 MAY 2010 Renamed the MHTReader class to MhtUtility class, to match the HtmlUtility class naming convention. 21 MAY 2010 Added and exposed the MHTReader class. 24 APR 2010 Fixed a bug in the ForwardReplyEmail class, where if a FROM address was encased in "<" and ">", it didn't properly render in the HTML body of the forwarded or replied to email. 20 APR 2010 Fixed a bug in the ForwardReplyEmail class where base64 bodies weren't propertly decoded, when additional text was applied. 13 MAR 2010 Expanded the EmailMessage.Parse(...) routines to better parse MHT files, so they can be converted into EmailMessages. 10 MAR 2010 Expanded the internal subject encoding routine to break long subjects in a more friendly manner across characters and bytes. 09 FEB 2010 Fixed a spelling error in an exception thrown. 01 FEB 2010 Inc'd build numbers 24 JAN 2010 Modified the Quoted-Printable header encoding routine to not split mulitcharacter bytes across multiple lines. 11 JAN 2010 Converted another internal switch statement to if..else if. 05 JAN 2010 Exposed the FileExtension property on the MailEnable class. 29 NOV 2009 Converted an internal switch statement to an if..else if... for better runtime optimization 12 NOV 2009 Exteneded the HtmlUtility class to handle the data:image/ URI scheme on image src values. 21 OCT 2009 Possible Breaking Change: Modified the SmtpServerResponseEventArgs.Cancel behavor where EmailMessage.Send() will return false if .Cancel is set to true. 15 OCT 2009 Added additional logic checking to the HtmlUtility class to ignore images to download with a "cid:" prefix. 06 OCT 2009 Added additional mime part checking to the EmailMessage.Parse(...) routines. Checked for mis-labled attachments that were actually embedded images. 29 SEP 2009 Added additional debug statements to the log file, in the HtmlUtility class, regarding credential usage. 02 SEP 2009 Exposed the Ignore500 and Ignore500Content properties on the HtmlUtility class. 31 AUG 2009 Converted some longer switch statements to if..else if statements, for better runtime optimization. 26 AUG 2009 Inc'd build numbers 25 AUG 2009 Added XmlResolver permission issue work-around. 25 AUG 2009 Changed the header wrapping routine to only wrap on whitespace, not at a specific character length. If no whitespace exists, then wrap on maximum length. 19 AUG 2009 Inc'd build numbers 17 AUG 2009 Inc'd build numbers 17 AUG 2009 Exposed the EmailMessage.LocalEndPoint config key, so the EmailMessage.LocalEndPoint value can be set from the .config file 12 AUG 2009 Fixed a minor bug that threw an exception when parsing invalid FROM addresses using the EmailMessage.Parse(...) method. 04 AUG 2009 Exposed the .FileExtension property on the IISSmtp Queue class. 21 JUL 2009 Added the HtmlUtility.OverrideScriptRemoval property. 18 JUL 2009 Added the CssOption.ConvertToAbsoluteUrl option to the HtmlUtility class 17 JUL 2009 Fixed a bug in the HtmlUtility parser, to better match corrupt HTML tags. 17 JUN 2009 Inc'd the build numbers. 16 JUN 2009 Added NTLMv1 authentication support. 08 JUN 2009 Added additional functionality to remove some unfriendly html (and not required) found in MS Word HTML documents. 04 JUN 2009 Added the SocketBufferPause property to allow developers to slow down aspNetEmail, when it sends email too fast against SMTP servers. 13 MAY 2009 Added the HtmlFormUtility class to aspNetEmail. 16 MAR 2009 Exposed the EmailMessage.DefaultValidationPattern static property. 10 MAR 2009 Increased the .From address parsing routine, to better parse friendly from names and addresses from each other. 27 FEB 2009 Fixed a bug in the HtmlUtility class to handle null img src values, when converting them to embedded images. 05 FEB 2009 Exposed the SocketBufferLength property, to give the developer control over the length of bytes sent to the socket at a given time. 02 FEB 2009 Added the [XmlIgnore] attribute to the public AutoLoadFromConfigKey static property 20 JAN 2009 Added the LoadSslObject( object, useBefore220Welcome ) overload, to allow a SSL session to be initiated before the 220 welcome response is sent by the SMTP server. 06 JAN 2009 Added the capability for aspNetEmail to autoload value from the .config file by recognizing an AutoLoadFromConfig key. 27 DEC 2008 Modified the LoadFromConfig(...) methods so that Friendly names can be set on the .Cc and .To properties. 12 DEC 2008 Converted an internal switch...case statement to if..else if because in .NET 3.5, large select...case statements threw "Could destablize runtime" exceptions 24 NOV 2008 Fixed a bug where absolute URL HREFs were resolved in the HtmlUtility.ToPlainText(...) class, even if .ResolveHrefs was set to false 22 NOV 2008 Fixed a bug where

that contained whitespace wasn't properly recongized when converting HTML to plain text. 4 NOV 2008 Updated the internal Regex used for matching anchor tags, and internal anchor tag content. 3 NOV 2008 Modified the XMailer property so that if set to null, the XMailer header is not output. Previously it was output with aspNetEmail version information 26 OCT 2008 Fixed a bug where the WordWrapLen was not populated down to embedded body parts. 18 SEP 2008 Fixed a bug where the ReplyEmail class did not properly format the Date header of the replied-to email. 18 SEP 2008 Fixed a bug where the Date header wasn't parsed into the message when EmailMessage.Parse(...) was called. 09 SEP 2008 Updated the validate regex so that the local-part of the address can end in non alphanumeric characters. 04 SEP 2008 Added the AddOriginalArrivalTime() method to the IisSmtp class. 04 SEP 2008 Added the RenderEmailContents event 28 JUL 2008 Added the HtmlUtility.ImportCss(...) method to allow a developer to dynamically load CSS content into the raw html content. 29 MAY 2008 Modified the ValidateRegex property to handle email addresses with the new, longer, TLDs (such as .travel) @"^((\w+)|(\w+[!#$%&'*+-/=?^_`{|}~\w]*\w+))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,10}|[0-9]{1,3})(\]?)$" 28 MAY 2008 Fixed a bug where the MergedRowSentEvenArgs.Success return true, even if the pickup directory wasn't located. 27 MAY 2008 Added the capability to create a single zipped attachment from multiple byte arrays. 26 MAY 2008 Fixed a bug in the SmarterMail class, where the mail body was dot stuffed (per RFCs). However, SmarterMail does it's own dot stuffing, so it wasn't necessary for aspNetEmail to dotstuff the content. 18 MAY 2008 Fixed a bug relating to the MaximumHeaderLength property and encoded headers. 03 MAR 2008 Added the .png extension to the internal mime-map functions to automatically recognize PNG images. 31 MAR 2008 Exposed the MaximumHeaderLength property 18 MAR 2008 Inc'd for testing purposes 18 MAR 2008 Inc'd for testing purposes 18 MAR 2008 Updated the internal iCalendar DST rules to be more compatible with Outlook rules and format, and be more RFC friendly. 17 MAR 2008 Modified the RelativeTrigger of the iCal to output it's total time in minutes (instead of days and hours) to help with Outlook incompatability. 27 FEB 2008 Inc'd for testing purposes 21 FEB 2008 Updated the internal iCalendar DST rules to be more compatible with Outlook rules and format. 21 FEB 2008 Inc'd for testing purposes 20 FEB 2008 Inc'd for testing purposes 08 FEB 2008 Fixed a bug when encoding headers with the Quoted-Printable format to be compliant with rfc1342 regarding underscores. 21 JAN 2008 Inc'd build number for testing purposes. 21 JAN 2008 Modified the EmailMessage.HtmlToPlainText(...) method to more accurately replace invalid html 'p' tags. 16 JAN 2008 Fixed a bug relating to Ssl on 64bit servers. 15 JAN 2008 Inc'd for testing purposes 15 JAN 2008 Inc'd for testing purposes 14 JAN 2008 Inc'd for testing purposes 14 JAN 2008 Inc'd for testing purposes 14 JAN 2008 Inc'd for testing purposes 10 JAN 2008 Fixed a bug to wrap Content-Location values that were longer than 76 characters. 09 JAN 2008 Further expanded the EmailMessage.Parse(...) routines. 08 JAN 2008 Expanded the EmailMessage.Parse(...) method to be more flexible for detecting inline messages with no bodies. 08 JAN 2008 Added a DirectSend.Send( EmailMessage emailMessage, int dnsTimeout ) method for better timeout handling. 03 JAN 2008 Added the [Serializable()] attribute to the following iCalendar classes so they can be properly serialized:ExceptionDate, Sequence, PlainTextFormatter, HtmlTextFormatter,Sequence 11 DEC 2007 Expanded the HtmlUtility logic to automatically embed images that are referenced in the style attribute of Html tags using the url(...) syntax. 07 DEC 2007 Fixed a bug where the EmailMessage.CharSetHeader value was not set, when HtmlUitlity.ToEmailMessage() was called, and a non us-ascii characterset was used on the HtmlUtility class 03 DEC 2007 Modified the ValidateRegex pattern to handle some complex number patterns in the alias part of the address. 20 NOV 2007 Added the capability of the EmailMessage.Parse(...) methods to recognize UUEncoded data. 20 NOV 2007 Increased the flexibility of the EmailMessage.HtmlToPlainText(...) method to handle more unique, higher end, html encoded characters, and convert them to plain text 03 OCT 2007 Modifed the ValidateRegEx pattern to be more flexible. Set to @"^((\w+)|(\w+[!#$%&'*+-/=?^_`{|}~a-z]*\w+))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$" 01 NOV 2007 Inc'd build number for testing purposes 31 OCT 2007 Re-wrote the header encoding routine to create smaller headers that use charactersets other than us-ascii 25 OCT 2007 Expanded the flexibility of the EmailMessage.Parse(...) methods to handle top level attachments with no bodies. 23 OCT 2007 Exposed the static EmailMessage.Encoding(...) method. 11 OCT 2007 Inc'd build number for testing purposes 11 OCT 2007 Inc'd build number for testing purposes 08 OCT 2007 Exposed the To, Cc, and Bcc Recipients NameValueCollection 08 OCT 2007 Modifed the ValidateRegEx pattern to be more flexible. Set to @"^((\w+)|(\w+[!#$%&'*+-/=?^_`{|}~]*\w+))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$" 04 OCT 2007 Exposed the DirectSend.GetMXRecords(...) method 01 OCT 2007 Fixed a bug in EmailMessage.ParseFile(...) when parsing inline parts that are also the body of the email, and is not to be construed as an inline attachment. 20 SEP 2007 Changed the EmailMessage.ParseFile(...) to allow empty EmbeddedObjects and empty attachments 22 AUG 2007 Fixed a bug in the HtmlUtility class for resolving Absolute Hrefs 12 JUL 2007 Added the following properties/methods to the EmbeddedObject class:
ContentDisposition, FileName, Headers, and AddHeader(...) 12 JUL 2007 Inc'd build number for testing purposes 10 JUL 2007 Inc'd build number for testing purposes 10 JUL 2007 Added the DirectSend.GetDefaultDnsServers() method. 02 JUL 2007 Added additional logging statements during the HtmlUtility downloading binary data. (description) 20 JUN 2007 Added additional logging statements during the sending process. 20 JUN 2007 Updated the internal html to plain text conversion routine to handle the non-RFC standard euro; html entity. 15 MAY 2007 Added the feature for Exchange 2003 users to specify a more friendly relative date Recurence Rule (eg. Appointment on the 2nd Wed of every month). 11 MAY 2007 Fixed a bug in the iCalendar object where it was possible for a TimeZone offset to be duplicated. 07 MAY 2007 Added the CsvUtility class to convert a CSV file to a DataTable, which can be used for creating a DataTable for a mail merge. 06 MAY 2007 Fixed a bug were it was possible for iCalendar recurrences to be double encoded. 27 APR 2007 Fixed a bug where CC and BCC Mail Merge addresses were not being added to the MailMergeSuccess address ArrayList 14 APR 2007 Added the HtmlRemovalOptions.ReplaceInputTextAreaWithValue enum 13 APR 2007 Added the HtmlRemovalOptions.InputSubmitTag and ReplaceSelectTagWithSelectedText enum 13 APR 2007 Added the HtmlUtility.Save(...) methods, due to customer requests. 12 APR 2007 Added the capability for Html to Plain Text conversion to format anchor tag hrefs in brackets. 04 APR 2007 Added additional logging statments when the SmarterMail spool directory is dynamically located, for better troubleshooting. 03 APR 2007 Added instance method DirectSend.Send() and propety DirectSend.EmailMessage, so the class could be used in COM environments, due to customer requests/demand. 31 MAR 2007 Added the MailEnable queuing capability 28 MAR 2007 Cleaned up the vCard Bit7 encoding routing. Also added a better word-wrapping method. 25 MAR 2007 Added the iCalendar.OptimizedFormat.Exchange2003 and the X-MICROSOFT-CDO-TZID values (description) 22 MAR 2007 Added the Rfc2822 queuing class for performing a mail merge against those servers that accept RFC 2822 formatted files. (description) 27 FEB 2007 Modified the internal Daylight/Standard timezone rules to match the new rules for the USA. 26 FEB 2007 Modified the internal MX record sorting, used by the DirectSend class for more accurate MX record preference. 21 FEB 2007 Added automatic charset detection to the HtmlUtility class from http loaded web pages. 11 FEB 2007 Added the DeliveryNotifiction functionality to the EmailMessage object. 17 JAN 2007 Added the SmtpDataFile property. 19 DEC 2006 Added the EmbeddedObject.Load( byte[] data, string contentType )
Added HtmlUtility.HttpData( string url, string referrer, out string contentType ) 12 DEC 2006 Added the EmailMessage.AddCalendar( iCalendar, bool ) method to add all Attendees to the EmailMessage 12 DEC 2006 Fixed a bug (that was introduced in version where an email was still sent during a MailMerge, and using MailMergeAttachments, even if AttachmentMMBehavior was set to ThrowException. 24 NOV 2006 Added the iCalendar.ExceptionDate class to add Exception Dates from recurring rules 16 NOV 2006 Added the .Headers property, .AddHeader(..) and .ClearHeaders() to the MimeBodyPart and iCalendar objects. 18 OCT 2006 Added the SmtpServerResponseEventArgs.Cancel property. 18 OCT 2006 Added additional logging statements to the DirectSend.Send(...) method. 09 OCT 2006 Increased the flexibility of the EmailMessage.HtmlToPlainText(...) method for better HTML table conversion. 09 OCT 2006 Added the iCalendar.Event.Sequence property. 08 OCT 2006 Added the capability to automatically stream attachment from the filesystem, directly to the SMTP server with out needing to cache the file
Added the EmailMessage.CacheForSmtp property, along with the Attachment.SourceFileSystemPath and Attachment. SourceStream 06 OCT 2006 For iCalendar.TimeZone rules, output a "+" symbol for all offsets > 0, even though it is the default some versions of MSExchange like to see a "+", even though the hours are > 0. 06 OCT 2006 Increased the accuracy for Daylight/Standard time calculation 06 OCT 2006 Fixed a bug where it was possible for custom RRULE (recurrence rules) to be double encoded. 05 OCT 2006 Inc'd for build purposes 04 OCT 2006 Added the iCalendar.TimeZoneRule class
added the iCalendarComponent.AddProperty( name, value ) method
added the TimeZoneFormat.TimeZoneCustomRules enum 25 SEP 2006 Added the HtmlUtility.AllowEmptyEmbeddedImages property
Added EmbeddedObject.Load(...) method. 20 SEP 2006 Added the CreateWebRequest event to the HtmlUtility class 13 SEP 2006 Increased the flexibility of the HtmlUtility class to match additional javascript found in emails. 13 SEP 2006 Added the HtmlUtility.ParseFile(...) and HtmlUtility.ParseUrl(...) methods
increased the flexibility of the HtmlUtility class when resolving url's absolutely. 05 SEP 2006 Added additional debug statements to the log file regarding the iCalendar object and TimeZone information. 10 AUG 2006 Incremented for build purposes. 10 AUG 2006 Optimized the DESC text of the iCalendar to be more human readable. 09 AUG 2006 Fixed a bug in the iCalendar text values where they weren't encoded properly for commas 09 AUG 2006 Added additional error checking in the DirectSend class to help with DNS resolution. 06 AUG 2006 Added the EventCollection and Events property to the iCalendar object, so it can support multiple events. 31 JUL 2006 Added the EmailMessage.HtmlBodyPart.AppendBodyFromFile and EmailMessage.TextBodyPart. AppendBodyFromFile recongized .config appsettings entry. 07 JUL 2006 Added the capability for the EmailMessage.SmtpAuthentication property to be loaded from the web.config 07 JUL 2006 Added the SmtpAuthentication.None enum option. 03 JUL 2006 Added the ability for the .Timeout property to be loaded from the web.config 26 JUN 2006 Added a check when mailmerging a collection to verify collection.Count > 0 22 JUN 2006 Added the EmailMessage.Tag property. 20 JUN 2006 Added a Try...catch block in the ProxySocket shutdown method to trap an exceptions during shutdown. 19 MAY 2006 Fixed a bug where an exception was thrown when a custom collection of objects was mail merged, and the custom object had Write-Only properties. 25 APR 2006 Fixed a bug in the HtmlUtility class where "file:///" was not properly parsed in certain cases as the baseUrl. 04 APR 2006 Fixed a bug in vCal output to compensate for additional CrLfs in description text. 03 APR 2006 Fixed a bug when performing a mail merge against custom objects. Added a check to make sure Indexers were not referenced as a mail merge field, as this is incorrect syntax. 30 MAR 2006 Modified the iCalendar object to make sure all iCalendar properties have a ":" in it, even if the property ends in ":". This allows an empty string for a iCalendar property value. 17 MAR 2006 Added the aspNetEmail.Queuing.IMail class. All IMail functionality will be moved to this class. 10 MAR 2006 Added the SuppressEmailName property. If SuppressEmailName is true, and something like
    msg.AddTo( "steve@whatever.com" ), only "steve@whatever.com" will be added to the To header as the email address (instead of both the email address and name).
    however, if SupressEmailName is true and something like msg.AddTo( "steve@whatever.com", "steve@whatever.com" ) is used, then the email address and name (as email address) will be used
    this allows the end developer the most control. 03 MAR 2006

Added the TimeZoneFormat.IgnoreTimeZoneRules enum

    Changed the TimeZoneFormat.UTC name to TimeZoneFormat.ConvertToUTC (which is a more helpful name) 02 MAR 2006

Added the TimeZone.Format property to control how the VTIMEZONE component is output. 02 MAR 2006 Exposed the IISSmtp.PickupDirectory 20 FEB 2006 Incremented for build purposes. 20 FEB 2006 Checked for a content-disposition header on the mail email, instead of only subparts. If the main email
    is found as an attachment, it is added to the Attachment collection. 20 FEB 2006

Added additional logging statements to the DirectSend() class for additional troubleshooting help. 19 FEB 2006 Exposed the ForwardReplyEmail.OriginalMessageHtmlPrefix/OriginalMessageHtmlSuffix properties
    Also exposed the ForwardReplyEmail.OriginalPlainTextHeader(), OriginalHtmlTextHeader(), OriginalPlainTextFormatted(), OriginalHtmlTextFormatted() methods as public virtual
    so they can be overridden in children classes. 18 FEB 2006 Added the ParseHtmlTagEventHandler to the HtmlUtility class 14 FEB 2006 Added the .AddAttachment( string directory, bool recurseDirectory ) method to add a all the files in a directory as attachments. 08 FEB 2006 Added the Pop3BeforeSmtp class. 07 FEB 2006 Added the SmtpProxy class to allow aspNetEmail to be used from behind proxy servers. 07 FEB 2006 Fixed a bug when parsing a corrupt mutipart/related email threw a null exception when EmailMessage.Parse(...) was called   Fixed a bug when emailing HTML content and HTML comments were removed. This Option also removed content like
  css stuff here. " > css stuff here. " > . 18 JAN 2005 Updated the regular expression pattern used for validating email addresses to allow for more uncommon, but compliant, characters 10 JAN 2006 Exposed the BccVisible property for those situations that require the Bcc values to be written to the headers 19 DEC 2005 Created the aspNetEmail.Queuing namespace. Created the basic IISSmtp and SmarterMail classes   Increased for build purposes 15 DEC 2005 Added overloaded methods to the HtmlUtility class so content can be appended to the class, along with loaded into the class   Increased for Build purposes. 14 DEC 2005 Fixed a bug in the ForwardReplyEmail class where it was possible for a null exception to occur on non ascii address names. 12 DEC 2005 Added the [XmlIgnore] attribute to the static properties found on the EmailMessage object. These static properties require the XmlIgnore attribute for proper
    serialization under the .NET 1.0 Framework 12 DEC 2005 Added the ContentTransferEncoding to the iCalendar class for better control over it's Mime rendering 04 DEC 2005 Added addtional flexibility to the EmailMessage.Parsexxx(...) methods to recognize broken header values.   Extended the ReplyEmail class so ConverToPlain text would recognize Multi-part mime messages without only a single Html body part   Fixed a bug in the ReplyEmail class where a the original message was specified as multi-part, even though it only had 1 body.   Changed the way Double.Parse(..) was called to allow any format in the LicenseReader class   Added some friendly exception messages that are thrown during the license validation process. 21 NOV 2005 Fixed the same bug that was fixed in, except with respect to the MHT capability of the HtmlUtility class   Added additional internal log statements to be written to the log file in the HtmlUtility class to help with troubleshooting 18 NOV 2005 Fixed a bug in the HtmlUtility class where attributes that had Javascript were not replaced with an empty stirng when HtmlRemovalOptions.ReplaceWithEmptyString was set.   Added the capabilty for the HtmlUtility class to download CSS from linked UNC paths.   Added additional logging to the HtmlUtility class when it downloads CSS and other linked content. 14 NOV 2005 Fixed a bug in the HtmlUtility object where remote images could not be downloaded from a server share referenced like file://servername/images/someimage.gif   Added the ReplyEmail.ReplyToAll property
Also fixed a bug where in the ReplyEmail class, the OriginalMessage.FromAddress and .FromName did not set the new FormattedMessage.To properties.   Fixed a bug in the HtmlUtility class where it was possible for a image src value(a) to be completely part of another image src value(b), then (b) did not get replaced with the proper CID value.   Added the Port property to the list of properties that can be configured from the .config file   Modified the DirectSend class so it grabs the first .To address to find the domain name. Before, it only assumed there was a single address

  Added the EmailMessage.LogEvent event.   Added the Log property, and the ClearLog() method  

Released as for the .NET 2.0 change that High Surrogate UTF8 encoded characters are dropped ( 18 OCT 2005 )   Found bug in .NET 2.0 where UTF8 strings were chopped. Coded work-around

13 OCT 2005

Released version 3.5   Added a cookie container object to the HtmlUtility class to maintain state across requests   Made sure public fields were enumerated when SendMailMerge( IEnumerable ) was called (before it was only public properties, but not public fields) 09 OCT 2005 Added the DirectSend.AddDnsServer(...) methods   Modified the CheckNewLines behavior. This property now also checks the header values for new lines and removes them. 23 SEPT 2005 Modified the ValidateRegEx property to allow for apostrophes " ' "   Added some additional overloads to the iCalenar object. Also, check if an iCal was added to aspNetEmail, but Organizer and Attendees were blank, took on the properties of the EmailMessage object   Exposed the PlainTextFormatter and HtmlTextFormatter on in the iCalendar object 13 SEPT 2005 Added the HtmlRemovalOption.AnchorTag and HtmlRemoveOption.AnchorTagReplaceWithHref options   Fixed a bug. If HtmlUtility( emailmessage) ctor was used, and then .ToEmailMessage() was called, the .ParentMessage property was used to return the EmailMessage.   Added the LogDataRow(...) method to log DataRows without any email addresses in the MailMerge to the log   Added additional parsing to the EmailMessage.Parse(...) methods. Now checks attachments for content-Id's   Added the .From property to the EmailMessage object. The .From property can now include both the name and email address, and will be parsed into their components. 10 AUG 2005 Fixed a bug in the DirectSender class where the original DNS servers were not overridden by a manually specified array of Dns Servers 09 AUG 2005 Added the BeforeSmtpServerSend event/args to the EmailMessage class 25 JUL 2005 Added the EmailMessage.Noop() method 24 JUL 2005 Added the EmailMessage.Initialize() method

21 JUL 2005

Added additional code to the EmailMessage.Parse(...) routines. It was possible for a Html part to be considered a body part and an attachment.


Added the MSPickupDotStuff property, to compensate for the bug in the IIS SMTP Service.


Fixed a bug where LoadFromConfig(...) prefixes were not properly checked for case insensitivity


Added the OnBeforeWebRequest event to the HtmlUtility class


Added the OptimizedFormat for the iCalendar class to be more friendly towards Exchange


Added the .ToString( iCalendar ) overloaded method to the iCalendar classes


On iCal.Recurrence rules (RRULE) the weekstart is now output. Before it was not output, if the default was used some versions of MS Exchange seem to require it, even though the RFCs don't.


Added the "CANCELLED" status to the Event.Status.ParticipationStatus enum


Changed the default setting for outputting TimeZones on the iCalendar object. Now, the TimeZone is not automatically set and created.
Event DateStart/DateEnd are now created with the UTC format by default. Only if the proper ctor, or InitializeTimeZone() method is called will the TimeZone be used.


Added the SaveToFile(path) method.


Added an additional check when setting .To address. Check to see if the MMPrefix/MMSuffix contain <> characters, in case the developer is trying to do a mail merge with a value like .


Added the [assembly:AllowPartiallyTrustedCallers] attribute


Added the EmbedImageOption to the EmailTemplate control.
Fixed a bug in the HtmlUtility object where .LoadString() baseUrl parameter appended a "/" after pages.


Fixed a bug in the iCalendar where if .ToString() was called mutliple times on the same iCal object, a duplicate timezone was added for each .ToString() call.


Fixed a bug where the vCard.CharSet property was not passed into the DeliveryAddress property for non us-ascii encoded values


Added the .CharSet property to the Attachment class
Added the .CharSet property to the vCard class. Made sure all properties check for this charset

01 MAY 2005

Added SSL support


Modified the DirectSend method to always order the MX records properly


Changed the way the vCard properties characterset works. If the characterset is != "us-ascii", and the encoding == MailEncoding.Bit7, the encoding is changed to QuotedPrintable

24 APR 2005

Added EmailMessage.ToAttachment()
Added the ForwardReplyEmail class


Exposed the MSReceiver and MSXSender static constant as public static EmailMessage properties


Fixed a bug in EmailMessage.Parse(...) where the subject header charset was not populated when it was non us-ascii
Fixed a bug in EmailMessage.Parse(...) where Base64 encoded bodies were decoded, instead of properly setting the EmailMessage body as encoded.


Added the HtmlRemoveOptions.ReplaceWithEmptyString option.


Added the ability to remove Html , , and Html Comments from the Html Utility class
Fixed a bug in the HtmlUtility class where Css url(..) images were resolved relative to the page, instead of the Css link. Now resolved via the Css link
Option to convert all relative href's to absolute Hrefs

25 MAR 2005

Added the capability to automatically attach an exception, as an Attachment, to the EmailMessage in FormatException(...)


Added the Load(..) method to the vCard.Photo object


Added a log statement to include TimeOut in ms when connected to the mail server.


Fixed a bug in the HtmlUtility class where 404 errors where thrown if EmailMessage.ThrowException = false


Added the version number to the iCalendar.ProdId value on the recurrence object, anything with an interval != -1 is output


Added a ZippedAttachmentEncoding for reading non ASCII filenames


Updated the iCalendar component. For any Events with null values, they are not written out.


Made sure that improper email address were still allowed in the .To, .Cc, and .Bcc values, if ValidateEmailAddress=false


Added the CustomCalendarProperty object to the iCalendar namespace.


Added a check for the Reply-To header when messages are parsed calling EmailMessage.Parse()


Added a byte[] Data property to the Attachment object


In the FormToDataTable() method, if a control has an Items collection, 2 new fields were added Control.ID + "_Text" and Control.ID + "_Value". This works for things like DropDownLists so people can select what they want to use.


Added logging functionality to SendToMSPickup() and SendMailMergeToMSPickup() methods


Added the OnError event to the EmailMessage class


Fixed a bug where EmailMessage.Parse(...) set any Content-ID values to . This resulted in emails being sent as <>


HtmlUtility can now embeds images in CSS content


Fixed a bug where the BeforeQueueWrite was not raised when the single SendMSPickup() was used.


Added the TimeOut property to the HtmlUtility class.


Added the ExcpectedReply and ActualReply to the SmtpServerResponseEventArgs


Added the Content-Location header to the HtmlUtility object and to the EmailMessage object.


Modified the HtmlUtility class to remove any Html comments before checking for linked css sheets, and downloading them.


Added the IgnoreUnderscoreNames and SortSectionItems to the ServerErrorSection when formatted the Exceptions


Added the CreateEmbeddedObject event to the HtmlUtility class.


Logged the Headers of Loading Urls to the log.

11 Jan 2005

Added WebRequest log statements to the HtmlUtility class


Added the IWebProxy property to the HtmlUtility class.


Added the ToByteArray() and the SaveToStream() methods


Added thhe XHeaderArray property.
Added Serialize/Deserialize methods to accept formatters


Added the option to throw exceptions during EmailMessage.Parse()


Added the DataRow Row property to the BeforeQueueWriteEventArgs object.

09 Dec 2004

Added the functionality where EmailMessage.To, Cc, and Bcc are checked for complex addresses

08 Dec 2004

Added the LocalEndPoint property to the EmailMessage object

08 Dec 2004

Added the HtmlEncodeTemplateData to the EmailTemplate control to better control how submitted data is encoded

04 Dec 2004

Released as

02 Dec 2004

Fixed a bug where the MimeBodyParts weren't inheriting the parent ContentTransferEncoding if the MailEncoding wasn't Bit7

16 Nov 2004

Added EmailMessage.FireandForget( EmailMessage )


Added the NetworkEncoding property to control how data is encoded across the smtp session


Added the EmailMessage.Connect() and EmailMessage.Disconnect() methods.


Launched 3.0 (22 Oct 2004)

19 Oct 2004

Moved to Xml Licensing


Finished documenting the vCard stuff.


Finished documenting the aspNetEmail.Calendaring namespace


Added the Header ArrayList for Attachments


Added a EmailMessage.GetLog( bool htmlEncode ) method


Added the EmbedImageOption.ConvertToAbsoluteUrl option


Made sure the EmailMessage.TextBodyPart and HtmlBodyPart where ignored during serialization. They are picked up from the MimeBodyPart collection.


Fixed a bug where 8Bit emails were not encoded properly when sent to MSPickup


Added the LoadControl() method to HtmlUtility class.


Changed the ValidateRegEx pattern from @"[\w-]+@([\w-]+\.)+[\w-]+" to @"^(\w+([-+.]\w+)*)@([\w-]+\.)+[\w-]+$"


Made the XRCPTTO address publically available


Changed the way the Disposition-Notification-To header value is created. Now surrounded with "<", and ">" values.


Changed the EmailMessage.Parse() behavior, so that attachments without names, have their names built based upon their index.


Added a Serialization ctor to the EmailException object


Added the EmailMessage.Parse() and EmailMessage.ParseFile()


Created a TextBodyPart from the HtmlBodyPart, if the TextBodyPart is null.


Added the StyleSheetFile property to the EmailTemplate control


Added the EmailTemplate control.


Added Cram-MD5 Authentication

07 2004 23

Added the SmartTimeOut property


Added the XAccounting object


Added additional Attachment ctor's to allow for different MailEncodings


BREAKING CHANAGE made content-location images referenced by their Fully Qualified Url, instead of the partial url.


Fixed a bug in Embedding images in a web page where there were duplicate downloaded images.


Added the AUTH PLAIN Authentication Mechanism


Added the capability in the MimeBodyPart to change embedded images to ContentId


Added the HtmlFormOption.HtmlEncode and made sure the Html Form checked for SelectedItem.Text and SelectedItem.Value


Fixed a bug where an address could be added to the OnRowMerge event, yet it wasn't sent


Made sure images could be downloaded using Credentials, specified by the HtmlUtility class


Added the Charset property to the HtmlUtility class


Added the HtmlEncode option


Added the capability to HtmlEncode non ascii values on the HtmlUtility class.


Added the CssOption Enum


Added the HtmlRemovalOptions enum and the HtmlRemovalOptions property to the HtmlUtility object


Added the SendMailMergeList( string csvList, string separator ) methods


Made sure the Mime-Version: 1.0 header was added to all messages


Added the UrlContentBase property to the MimeBodyPart object


Incremented to change a build from evaluation to production


Added the BeforeSendEmail event


Fixed a bug in HtmlUtility, where nested Javascript was not being removed (4/8/2004).


Added the HtmlUtility.FollowMetaTagRedirects method.


Added the IsAlive() method to the HtmlUtility

05 APR 2004

Add the ToBytes() and ToMHTFile( bool compress) methods to the HtmlUtility


Added the MetaTag() methods to the HtmlUtility class


Added the HtmlTitle() method to HtmlUtility class


MHTs were being 7 Bit encoded. Changed to QuotedPrintable

03 APR 2004

Now removes inline scripts (onWhatever={script here type stuff} ), found in the actual html tags.
Added the capability for MHT to detect the web page encoding


Added the RemoveMHTScripts to the HTML Utility


Fixed a bug where SmtpData threw a null exception during a send.


Added IFRAME and FRAMESET support the the MHT stuff.

26 MAR 2004

Changed the MessageId property, so it is set, when generated


Added BeforeRowMerge Event handling


Added the MailEncoding.QuotedPrintableMinimal encoding type

16 FEB 2004

Added the addToParentMessage parameter on the Render method of the HtmlUtility class

14 FEB 2004

Added private LogExcecption() to HtmlUtility
Added ability to import linked stylesheets
Removed __VIEWSTATE,__EVENTTARGET, and __EVENTARGUMENT hidden html from emails.
Added UserAgent string to HtmlUtility
Added SetUrlContentBase
And added RemoveFramesets to HtmlUtility


Set MailMergeSuccess = false, if MergedRowSentEventArgs.Cancel is called.


BREAKING CHANGE when CharSet is set to something other than us-ascii, _ContentTransferEncoding = QuotedPrintable


Added the SendMailMerge( IEnumerable ) methods


Added the ICredentials property to the HtmlUtility property.


Modified ASPNETError.FormatServerError() to make sure that tracing is enabled for applying the CSS


Added the SmtpData property


Added support to reconnect to mail server, during mail merge


Added support so that server can not set as Server:Port and the Port property will be set.


Added the LogDebugStatements property


Set MimeBodyPart.ContentTransferEncoding = MailEncoding.Bit7 by default

24 NOV 2003

Added the UndisclosedRecipient property for all messages


Made sure the _ReversePath value was observed in the SendToIMailQueue() method (was originally only observed in the SendMailMergeToIMailQueue() method).


Added the SmtpHelloResponse property

17 NOV 2003

Added the FormToDataTable() methods


Added the MergedRowSent Event


Added the LoadHtmlForm() methods to the email message object

04 NOV 2003

Changed the way EmailMessage.AppendControlToBody( control, placeHolder ) functions. Automatically replace the placeholder

29 OCT 2003

Added multi-email address support to a single column during mail merge

28 OCT 2003

Added EmailMessage.AppendControlToBody( control, placeHolder )


Added the IMailHost property

15 OCT 2003

Added the EmailMessage.HtmlToPlainText() method


Added the allow file schema to the embedded image routine

18 OCT 2003


8 AUG 2003

Quoted the "." for the QuotedPrintableRelaxed MailEncoding


Added the QuotedPrintableRelaxed MailEncoding

29 JUL 2003

Added another AppendBodyFromUrl() method. This one allows you to specify images to be embeded by content-id

21 JUL 2003

Added the NullEncoding Enum to MailEncoding added the CharSet encoding to the mimepart properties .


Changed the OpenConnection() method to loop through all of the servers, before an exception is thrown


Added the static methods SendASPNETException()


Added the FormatException() methods


Added the Serialize and Deserialize method

20 MAY 2003

Added the capability to add attachments from a URL

13 MAY 2003

Added the Content-Description header for embedded objects.


Added the BeforeQueueWriteEventHandler and BeforeQueueWrite Event.


Added encoding support to GetUrlContent()

21 FEB 2003

Replace any unencoded '?' in the headers with =3F.


Modified EmbedImage( string ContentId, string FilePathAndName ). The FilePathAndName parameter can now be a url (http:).

22 FEB 2003

Removed the content type to be custom for multiple body parts

04 FEB 2003

Added the version number to the log file ()
Added logging entries the CloseConnections() method


Added the ForceHeaderEncoding property


Modified the AppendBodyFromUrl() overloads for better coding. See the first 2 overloads
Modified the InternalUtility.UriDirectory() method to look for "?" in the url
Fixed a bug when downloading relative images

24 JAN /2003

Totally re-wrote the Base64EncodeBytes() method. Now it converts the bytes to a base64 string, line by line

23 JAN 2003

Added the IsConnected property so it can be used in the MailMerge row progress event


Added the propety CheckNewLines

07 JAN 2003

Added the ReversePath property to SendMailMergeToMSPickup() method, so now X-Sender is marked as ReversePath
Added the ReversePath property to SendMailMergeToIMAILQueue() method, so now S is marked as ReversePath
Added the capability to Mail Merge Attachments in SendMailMergeToMSPickup()
Added the capability to Mail Merge Attachments in SendMailMergeToIMAILQueue()

31 DEC 2002

Added the capability to Mail Merge Attachments

26 DEC 2002

MailMerge Enabled MessageId


Added the SaveToFile() method


Added the BaseEFN property
Added the ReversePath property
Exposed Base64Encode( byte[] )
Exposed Base64Encode( string )
Exposed Base64Encode( string, Encoding ) as utility functions
Added the property ContentTransferEncoding to MimeBodyPart


Added SendToMSQueue() support
Added RawHeaders Property
Changed the AppendFileToBody() methods on both EmailMessage and MimeBodyPart to allow encodings to be specified
Added SendToImailQueue
Added the ability to AutoEmbedImages from a url web page
See EmailMessage.AppendBodyFromUrl( string, bool )
See EmailMessage.AppendBodyFromUrl( string, bool, bool )
See MimeBodyPart.AppendBodyFromUrl( string, bool, bool )
Added BeginSend() and EndSend() Async Calls

24 SEPT 2002

Added the X-Mailer property
Added ReturnReceiptAddress property
Added MessageId property


BugFix: Modified the subject lines, so that anything encoded, and longer than 71 characters are broken into multiple lines
Added Outlook Sensitivity
Added the capability to CancelMailMerge
Added InternalEncodings
Added MimeBodyPart

20 JUL 2002

Re-Wrote the entire routine for adding MailMerge Address
Added MailMerge support for the FromAddress and FromName
Added MailMerge support for CC and BCC
Added MailMerge support for ReplyTo
Added BatchSize and Pause to mailmerges
Added the LogBody property

30 MAY 2002

Added the event MMRowProgress.
Added the AppendControlToBody() method.
Exposed the MailMerge delimeter fields. as MMPrefix and MMSuffix

22 MAY 2002

Changed EmailMessage.ThrowException = true by default (instead of false)
Removed the default setting of Server = To many people didn't understand why email wasn't being sent. They forget to set the server. This way aspNetEmail will raise an exception about the server not being set.

01 MAY 2002

Released aspNetEmail






Ok that seemed to have fixed the problem with the timezone. I'll continue testing it with my users but the few tests I did worked correctly. Thank you for working on this issue so diligently with me Dave. You have developed a great product and have offered great support to back it up. "

D. Pichardo

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