mail for ASP.NET email smtp mail for ASP.NET email smtp
mail for ASP.NET email smtp

Other Products
mail for ASP.NET email smtp
  "wow - quick response - thanks!"
Dan Welsh
Optonline
 
   More Testimonies
  System Requirements
     To utilize aspNetEmail you need to have the 1.0 (or greater) .NET Framework installed.

If you do not have it installed, please click here to download and install the framework.


New Features with version 3.5


Below are just a few of them. And, just in case you don't see something you would like added, personally email me with your feature request.

Dave Wanta
President
Advanced Intellect

New Features and Changes

.NET 2.0 Support
aspNetEmail runs under all releases of .NET. From 1.0, to 1.1 to the current release of .NET 2.0.

iCalendar Improvements
We've worked hard to improve the iCalendaring classes in aspNetEmail. We now check for null Organizers and Attendees, and intelligently populate those classes if the information is available in the EmailMessage class.

  • Formatting classes have been exposed so you can more easily control how the iCalendar objects are formatted in emails.
  • A new option has been added for those Exchange-only users. If your recipients will be using MS Exchange, the iCalendar format can be optimized for those users.
  • We've also added the capability to easily cancel iCalendar events, along with better support for those TimeZones that recognize daylight savings time.
  • Got your own custom implementation? No problem. aspNetEmail's calendaring supports custom iCalendar properties.
  • Better support for automatically loading binary data.

SSL Support
With the release of the AdvancedIntellect.Ssl.dll, aspNetEmail now support secure SSL connections. With as little as 2 additional lines of code you can enable your application to securely communicate with your mail server. The AdvancedIntellect.Ssl.dll can be downloaded from http://www.advancedintellect.com/download.aspx at no charge

AllowPartiallyTrustedCallers
aspNetEmail now allows partially trusted callers to make requests into the aspNetEmail.dll. This option allows it to be hosted under the ASP.NET 2.0 runtime.

HTML Manipulating Improvements
We've worked hard at making it even easier to manipulate HTML for your email messages.

  • The HtmlUtility class now supports cookies and sessions so you can download data that needs to maintain cookie state across WebRequests.
  • >
  • Automatically remove all Anchor tags from your HTML to control how the documents maintains it’s links.
  • Automatically embed images from templates created in ASP.NET forms.
  • Now you can replace all unwanted HTML tags and elements with an empty string, simply by setting an option.
  • Remove those unwanted HTML Form INPUT controls with a single option.
  • Convert all relative Anchor tags to absolute Anchor tags so they are resolved correctly.
  • Automatically embed images found in CSS files.
  • Control the TimeOut value now used to download content from remote HTTP locations.
  • New HTTP Proxy support to retrieve HTTP content from behind proxy servers.

More Events
We've added more events for the advanced developer to work without products.

  • Now you tie into the EmailMessage it is sent to the server for last millisecond manipulation.
  • Tie into the WebRequest object so you can finely control how content is downloaded over HTTP.
  • Wire up the OnError event to maintain and log each error generated by aspNetEmail in your application.

Advanced Email Address Parsing
Now you can set your email addresses using complex aliases and names, and aspNetEmail will automatically set the appropriate To, Cc, Bcc and From properties.

Direct Sending
Now you can better control how email messages are sent directly without a relay server. The internal MX resolution engine has been optimized along with offering you more options for controlling the DNS servers used for queries.

Better Support for IIS SMTP Service
Some IIS SMTP service implantations have a known 'DotStuffing' bug. We've built the solution in, so you don't have to apply the Microsoft patch found at http://support.microsoft.com/?id=286358.

Better Support for Multihomed machines
Does your server have multiple IP addresses? Now you can selectively control which IP address is used for sending all email.

Better Application Exception Emailing
Do you use aspNetEmail to email exceptions generated by your application? Now aspNetEmail can automatically serialize them to an attachment, so you can recreate them on your development machine, and determine why an application is throwing an exception.

Better Support for EmailTemplating
Due to great customer feedback, we've improved automatic email templating

  • Automatically encode ASP.NET form submitted data to programmatically format how it is viewed in the email client.
  • Better support for SELECT controls where you can control the selected label and the selected value.

Better Support for Mail Merges
Now you can perform a mail merge on your own custom objects/classes. Perform a mail merge against both properties and fields.

Better Attachment Handling
We've improved our attachment handling capabilities to support even the most discriminating developer.

  • Need advanced control of an attachment's headers? Now you can add custom headers along with controlling the specific characterset used to render the attachment on the end users email client.
  • Easily convert EmailMessages to attachments with one method call.
  • Better support for non US-ASCII filenames in zipped attachments.
  • Irregardless of your data source, now you can control the binary data of the attachment.

Better Debugging and Troubleshooting
We've added even more logging statements to be written to the debug log for easier troubleshooting. If you run into a problem using aspNetEmail, simply enable logging, and read the log in any text reader (ie Notepad). You may not even need to contact Advanced Intellect for support. Suggestions may be found right in the log file.

Programmatically Forward and Reply to an Email
aspNetEmail makes it even easier to Reply or Forward an email. No longer do you have to worry about complex formatting. aspNetEmail can handle all of the hard work for you.

Better Serialization
Now you can serialize aspNetEmail to your own data store using your own serializers.

Stronger RFC2822/822 Parsing Routines
With aspNetEmail, you can populate an EmailMessage with any RFC2922 data source. aspNetEmail has been improved, and become more accurate at parsing RFC2822 formatted messages. Whether a string, byte array, or file, aspNetEmail can convert a RFC2822 message into a completely accessible EmailMessage object. aspNetEmail now provides:

  • Optional control if you want exceptions thrown on broken messages.
  • Better optimizations for HTML formatted messages
  • Better support for attachments that also double as embedded images.
  • Better support for non US-ASCII header support.
  • Better support for broken Quoted-Printable and Base64 encoding routines.
  • Better support for uncommon RFC 2822 headers.

Besides those features, aspNetEmail still includes the following great feature list.


 

New Features with version 3.0

New Mail Merge functionality
The following new features allow you to more efficiently, and more powerfully perform mail merges in your application.

Allow multiple email addresses to be merged from a single column
Now columns in your data source can contain more than a single email address. Multiple email addresses can be separated by a comma or a semi-colon, and aspNetEmail will perform the mail merge accordingly.

Perform MailMerges against custom object collections
MailMerges can now be performed against custom collections of objects. As long as the collection implements IEnumerable, aspNetEmail will be able to extract the object’s properties and merge them accordingly.

Perform Mail Merges against DataViews
Perform a mail merge against a custom DataView

Perform Mail Merges against an array of email addresses
Perform a mail merge against an array of email addresses.

Perform Mail Merges against a list of email addresses
Perform a mail merge against an ArrayList of email addresses.

Perform Mail Merges against a CSV file.
Perform a mail merge against a CSV (comma separated value ) file of email address data.

Added a BeforeRowMerge event to customize the EmailMessage before the data is merged.
Hook into the new BeforeRowMerge event and specifically control each EmailMessage before the mail merge occurs.

New EmailMessage and SMTP Functionality
The following new features allow you to more powerfully control the email message, and SMTP functionality of aspNetEmail.

Automatically reconnect dropped SMTP session during mail merges
Automatically attempt to reconnect to dropped SMTP sessions. The number of connects attempts can be explicitly set.

Specify a delay between reconnection attempts
Specify the number of milliseconds to wait between each connection retry attempt.

Control the HELO response of the SMTP session
Custom control the HELO message presented to the remote SMTP Server.’

Added a BeforeEmailSend event for any last minute changes to the EmailMessage
Hook into the BeforeEmailSend to make any last minute changes to the EmailMessage.

Added an MergedRowSent event to manage and observe email transmission
Hook into the new MergedRowSent event to monitor each EmailMessage as it is sent during a mail merge.

Added a SmtpServerResponse event to monitor the SMTP session
Hook into the SmtpServerResponse event to explicitly see each server response of the SMTP session.

Added a BeforeQueueWrite event for better queuing management
Hook into the BeforeQueueWrite event to manage emails before they are written to the Queue directory.

Added the AuthPlain Authentication Mechanism
Now you can authenticate against those older mail servers.

Added the Cram-MD5 Authentication Mechanism
Now you can authenticate against secure MD5 servers.

Added advanced Content Transfer Encoding Routines
Choose between 3 different QuotedPrintable encoding routines based upon your preferences.

Added XAccounting FAX Capability
Send SMTP faxes using XAccounting features.

Automatically parse RFC 822/2822 messages, and convert them to an EmailMessage object.
Now you can load and populate an EmailMessage object and its properties based from a standard RFC 822/2822 MimeMessage string.

Automatically parse RFC 822/2822 files, and convert them to an EmailMessage object.
Now you can load and populate an EmailMessage object and its properties based from a standard RFC 822/2822 MimeMessage file.

Automatically parse RFC 822/2822 streams, and convert them to an EmailMessage object.
Now you can load and populate an EmailMessage object and its properties based from a standard RFC 822/2822 MimeMessage System.IO.Stream.

Automatically parse RFC 822/2822 binary data, and convert it to an EmailMessage object.
Now you can load and populate an EmailMessage object and its properties based from a standard RFC 822/2822 MimeMessage binary blob.

Automatically zip/compress Email Attachments
Automatically set attachments to be zipped to save on bandwidth, and mailbox space.

Added additional Socket functionality for setting server and port properties.
The server property can now be set like server:port, for easier code maintenance.

New utilites for utilizing webpages, HTML, and embedding images.
Now you can have even more control on populating the email content. From loading HTML behind password protected sites, to new functionaly for embedding images. The following is just a short list of these new features.

Download and populate EmailMessage body content from Password Protected sites
Specify a username and password to use as credentials for download protected content.

Download and EmbedImages from Password Protected sites
Specify a username and password to use as credentials for download protected images.

Convert Linked style sheets to embedded style tags
Some email clients remove or block linked style sheets. Now you can automatically embed them.

More Embedding Image Options
Even more power on how you want to embed images in your email message.

  • Embed by Content Id
  • Embed by ContentLocation
  • Do not Embed Images
  • Convert all relative image src values to absolute values

Automatically Load EmailMessage bodies and Embed Images from various sources.
Even more power over different sources of HTML

  • Load and automatically parse HTML from protected websites
  • Load and automatically parse HTML from both file:/// and http:// locations
  • Load and automatically parse HTML from a file system (c:\, d:\, etc..) location
  • Load and automatically parse a string of HTML
  • Load and automatically parse the HTML output from ASP.NET Server Controls
  • Load and automatically parse the HTML output from ASP.NET (.aspx) Pages

More Control over loading Email Message content from Web Pages
Control and remove content to make it more email client friendly.

  • Automatically remove Javascript
  • Automatically remove Applets
  • Automatically remove Embedded Objects
  • Automatically remove IFrames
  • Automatically remove FrameSet tags
  • Automatically remove NoFrames tags
  • Automatically remove bloated ViewState values
  • Automatically convert all non-ascii to it’s Html Numbered Code
  • Automatically convert all non-ascii to it’s Html Named Code
  • Automatically follow any HTTP Redirects
  • Automatically follow any MetaTag Redirects
  • Control the HTTP Referrer property for downloaded content
  • Automatically set the Html BASE tage for relative urls
  • Control the HTTP User-Agent string
  • Automatically determine the correct Url Content base
  • Automatically extract the Html Title of a page for use in Email Tracking and Subjects
  • Automatically extract any META tag values for Email Tracking and Subjects
  • Check to see if a HTTP resource is alive before attempting to download it
  • Automatically convert HTTP Resources to a MHTML Document
  • Automatically convert HTTP Resources to a MHTML Binary Document
  • Automatically convert HTTP Resources to a MHTML File
  • Automatically convert web pages to EmailMessage body parts
  • Control the characterset or encoding used to access web pages

Built In Calendaring (iCal/vCal) Support
Now you can create and send calendar appointments. Programmatically create and control calendar objects based on the vCal and iCal specification.

Automatically create and send Appointments
Create appointments and calendar events.

Create appointments in the vCal (iCalendar 1.0 ) Specification format
Create appointments based upon the iCalendar 1.0 specification. This is also referred to as a vCal. More information on vCals can be found at http://www.imc.org/pdi/vcalwhite.html

Create appointments in the iCal (iCalendar 2.0 ) Specification format
Create appointments based upon the iCalendar 2.0 specification. This is also referred to as an iCal. The iCal specification consists of 3 RFCs. They are:
RFC 2445, Internet Calendaring and Scheduling Core Object Specification (iCalendar)
http://www.imc.org/rfc2445
RFC 2446, iCalendar Transport-Independent Interoperability Protocol (iTIP): Scheduling Events, BusyTime, To-dos and Journal Entries
http://www.imc.org/rfc2446
RFC 2447, iCalendar Message-based Interoperability Protocol (iMIP)
http://www.imc.org/rfc2447

Control and set how Appointments Recur
Create recurring events, tasks, or appointments based upon any time variable.

Control each Attendee’s properties
Control specific Attendee properties such as name, email address, role, and participation.

Control the Appointment’s unique properties
Control the events various properties, including description, summary, location, organizer, Time Zone, and other various properties.

Built In vCard Support
Automatically create vCard (electronic business card) entities.
Using the built in vCard objects, control the following properties:

  • Birthdates
  • Delivery Addresses
  • Email Addresses
  • Geographic Position
  • Business Logo
  • Various Name values
  • Formatted/Display Name
  • Organization
  • Miscellaneous Notes
  • Photos
  • Business Roles
  • Sound
  • Telephone Numbers
  • Time Zone properties
  • Custom Properties

Built In HTML/ASP.NET Server Form Processing
aspNetEmail can now send email using a declarative server control. No programming is needed. You can create and automate email templates, simply by creating the necessary Server Control.

Automatically convert ASP.NET Forms to DataTables for easy mail merges
aspNetEmail can automatically convert webforms to a DataTable for easy and powerful mail merge capabilities.

Automatically send templated emails based upon data from web forms
Create files to be used as email templates for both the plain text, and html formatted parts.

Create an Email Template against ASP.NET Server Controls
Use the web form’s ASP.NET Server control’s names to use as place holders in your template.

Create an Email Template against HTML Form Values
Use the html form’s control’s names to use as place holders in your template.

Create an Email Template against QueryString Vaues
Use QueryString names and values to use as place holders in your template.

Automatically email uploaded attachments—without saving them to a directory
Use aspNetEmail to create attachments in memory, without requiring write permissions, to send attachments in an email.

Automatically zip/compress and email uploaded attachments.
Automatically compress email attachments to save on bandwidth, and increase sending speeds.

Optionally, automatically save uploaded attachments to the file system
Set an additional option, to save uploaded attachments to the file system for later analysis.

Automatically save webform results to an Xml formatted file.
Automatically save submitted webform results to an Xml file for later analysis.

Automatically save webform results to a plain text formatted file
Automatically save submitted webform results to a plain text file for later analysis.

Automatically save webform results to a HTML formatted file.
Automatically save submitted webform results to a HTML text file for later analysis.

Automatically email webform results, as plain text, without any template
Email the results of a submitted webform, as plain text, for quick and easy to read informational purposes.

Automatically email webform results, as HTML, without any template.
Email the results of a submitted webform, as in HTML format, for quick and easy to read informational purposes.

Capture and email rendered Html forms.
Capture the same HTML rendered to the browser, and send it as an email.

Add custom headers and footers to the templated emails.
Inject both header and footer text into an email message, simply by setting some file system paths.

Automatically include other log information in the email.

  • Include the User Identity
  • Include extra HTTP Request details
  • Include all Request.Form details
  • Include all Request.QueryString details
  • Include all Request.ServerVariable details
  • Include all Request.Cookie details

Possible Breaking Changes
Non US-ASCII Characterset
If a non us-ascii character set is used, the ContentTransferEncoding is automatically set to MailEncoding.QuotedPrintable If you absolutely have to work around this change (not recommended) you can reset the ContentTransferEncoding property, after you set the CharSet property.

Multi-Part Mime Messages
If you are automatically creating a Multi-Part Mime message using the HtmlMimePart properties, the TextMimePart bodypart will be created,if it is found null. Also, the TextBodyPart will always be output first in the EmailMessage. This creates a properly formatted Mult-Part EmailMessage. If you need more control over how the body parts are created and set, use the MimeBodyPart object, and manually add them to the EmailMessage, using the AddMimeBodyPart() method.

Validate Email Addresses Regular Expression Pattern
The regular expression pattern to validate the syntax of email addresses has been changed from [\w-]+@([\w-]+\.)+[\w-]+ to ^(\w+([-+.]\w+)*)@([\w-]+\.)+[\w-]+$

BugFixes
Fixed a bug where the success of a MailMerge could always return false, even though it was true.
Fixed a bug where a null exception could be thrown during the Sending process
Fixed a bug where an image with a space in its name was not correctly embedded
Fixed a bug were duplicate http requests were made to duplicate images
Fixed a bug where 8Bit Encoded emails were not properly sent to the MS Pickup directory (only of the ContentTransferEncoding was explicitly set to MailEncoding.Bit8)

 




New Features with version 2.5

Below are just a few of them.

New Features

Initialize the Email from the web.config
Now you can load various properties from the web.config and automatically send the email. Advanced inheritance settings allows multiple profiles for the EmailMessage object.

Direct Send Emails
Send emails directly to the end recipient, WITHOUT the need for a relay server.

More options for Embedding Images
More options for embedded images. Automatically email a web page, with all of the images embedded. Either by Content-ID or Content-Location.

Change MimePart Encodings
For advanced emailing, where you need to switch character set encodings, aspNetEmail handles multiple character sets in a single email.

Automatically Process ASP.NET Webforms
Automatically process ASP.NET webforms with 2 lines of code. Using specially named form variables, aspNetEmail can email you the form contents.

Format ASP.NET Exceptions and Trace
aspNetEmail now includes the capabilty to automatically format ASP.NET Application exceptions and email the trace. All in one line of code. Check out this link for a tutorial.

Serialize and Deserialize
Serialize and Deserialize the EmailMessage object. Now you can serialize it directly to the filesystem. The deserialize it for later use!

Add Attachments from a URL
No longer do attachments need to be located locally, or accepted from a stream. Load attachments directly from a HTTP location.

More Attachment Control
Better manual attachment creation support. Have better control over the individual attachment contents and headers.

Added BeforeQueueWrite Event
Control where the email message is written to for the file system. Even cancel the message write!

Embedding Images from a URL
Now you can embed images from a URL. They no longer need to be located locally on the filesytem.

Better 8 Bit Support
Better 8Bit support for those higher end character encodings.

More Encoding Features
Added additional Quoted-Printable encoding features to simulate same email format achieved by Outlook and Outlook Express.

More Encoding Features
Added additional Base64 encoding methods to easily encode base64 text.

Features released with version 2.0!
Here are just a few of them:

IMail Queuing
aspNetEmail allows you to write directly to the IMail spool directory, for seamless integration with IPSwitch IMail server. By writing to the spool directory, using IMail’s proprietary format, aspNetEmail bypasses the chatting SMTP session, resulting in 5,000, 10,000, or more emails per minute being processed. Now the only limitation is the speed of your hard drive(s).

Microsoft SMTP Service Queuing
aspNetEmail allows you to write directly to the MS SMTP Service Pickup directory, for seamless integration with the built in SMTP server that ships with IIS. By writing to the Pickup directory, using MS’s email format, aspNetEmail bypasses the chatting SMTP session, resulting in 5000, 10,000, or more emails per minute being processed. Now the only limitation is the speed of your hard drive(s).

Send Email Asynchronously
Now you can send email asynchronously, using the same techniques employed by the .NET framework itself.

Send Mail Merges Asynchronously
Now you can perform mail merges asynchronously, using the same techniques employed by the .NET framework itself.

Combine Queuing and Asynchronous Email Sends
Queuing email asynchronously is supported for both IMail’s spool directory, and for Microsoft’s SMTP service Pickup directory.

Send Web Pages, Complete with embedded Images
Pass a url into aspNetEmail, and aspNetEmail will assemble the web page, and automatically embed the images for offline viewing pleasure.

Send Web Pages, with harmful scripts removed.
Send web pages, and aspNetEmail will proactively remove <script> from the HTML.

Here is a listing of previously released features.

100% support for MultiPart Mime Messages
aspNetEmail now supports both plain text and Html formatted emails within the same body, as specified by the latest RFCs.

The ability to cancel Mail Merges
Now you can cancel a mail merge during the SendMailMerge() method call.

Better support for Embedded Images
Tons of new features for embedding images.

More options for adding attachments.
There are tons of new features for adding attachments to your email. Stream attachments directly from SQL Server into aspNetEmail or from a network or memory stream.

Faster code!
We’ve re-written almost 10% of aspNetEmail code for faster processing.

Enhanced Encoding Support!
Better encoding support, from Big5, to gb2312, to windows-1251.

Microsoft Outlook Sensitivity Support
We natively support Outlook Sensitivity and Confidentiality flags.

Faster Logging.
We’ve optimized the logging routine and added the property LogInMemory, to discard the resident memory log.

More descriptive exception messages:
Helpful exception messages regarding relaying and bad email addresses.

Over 70 new code examples have been added to the help file
You’ve asked for it, and we’ve delivered. There are over 70 new code samples in the aspNetEmail.chm help file.

Great Email Client support
We’ve tested over 300 different email scenarios against all major email clients, including but not limited to Outlook, Outlook Express, Eudora, AOL, Yahoo, and Hotmail.

Currently there are no known bugs in aspNetEmail. However, aspNetEmail is the most robust, yet easy to use SMTP component available, and we may have missed a bug or two. If you happen to run across one, please email me directly at dave@aspNetEmail.com and I’ll personally do my best to verify and fix in bugs within 24 hrs.

Now, on to the complete feature list!

aspNetEmail Feature List
Need a feature you don't see here? Write us at Support@aspNetEmail.com. Many of these features have come from previous requests.

FEATURE DESCRIPTION System.
Web.Mail
aspNetEmail
30 day Eval
aspNetEmail
Standard
Price   Built in free $149
Attach a File The ability to attach a file to an e-mail.
Multiple Attachments The ability to attach multiple files to an e-mail.
Change the FROM Address The ability to change the FROM Address on an e-mail.
MIME Encoding The ability to MIME encode the file attachments using Base64 encoding.
Priority Settings The ability to set the priority of the e-mail.
Send Mail via SMTP The ability to use an SMTP Server to send e-mail.
Send to BCC The ability to send blind carbon copy e-mail to individuals.
Send to CC The ability to send carbon copies e-mail to individuals.
US ASCII The ability to send e-mail with the ASCII character set.
X-Headers The ability to set all the X-Headers
Html Text Ability pass HTML text into the body of e-mail
MultiPart Mime Support The ability to send both Text and Html messages in the same body. no
MS Outlook Sensitivity Natively support Outlook Sensitivity and Confidentiality flags. no
Change ports The ability to change what port the object is sending to. no
Header CharSet The ability to encode the header using a different CharSet than the body. no
Header Encoding The ability to encode the header using Base64 or QuotedPrintable encoding for non US-ASCII CharSets. no
Embed Images Embed images or binary objects inside of the email. no
SMTP Authentication The ability to specify a username and password for those servers that require authentication to relay. no
Change the From Name The ability to change the FROM name on an e-mail. no
Content Type Ability to specify ContentType header of a message's body text. no
Content Transfer Encoding Ability to specify content-transfer encoding header of a message's BodyText no
Confirm Reading The ability to send e-mail with a confirm reading flag. no
MS Exchange\Outlook The ability to set an MS Mail (including Exchange) priority header. no
Ignore Recipient Errors Ignoring error messages returned by SMTP Server for Invalid address no
Redundant Servers The ability to specify more than one SMTP server. no
Return Receipt The ability to send e-mail with a return receipt. no
Urgent The ability to send an e-mail with an urgent flag. no
X-Priority The ability to set a standard X-Priority header. no
Clear All Recipients Clear recipients from the TO, CC, BCC list no
Clear Attachments Removing attachments to the message no
Clear BCCs Removes recipients from the BCC list no
Clear CCs Removes all recipients from the CC list no
Clear Extra Headers Removes any X-headers. no
Clear Recipients Removes recipients form TO list no
Get Text From File Loading the message's plain-formatted body text from a file. no
Word Wrap Ability to wrap the message body Text no
Get HTML Text From File Loading the message's HTML-formatted body text from a file no
Mass Mailing Sending personalized e-mails by connecting to database no
Mail Templates Ability to search and replace templates with personalized information no
Date Time For overwriting the default date and time no
Log Ability to log the session with Server no
Email Datagrid Ability to email a datagrid or any other Html or Webcontrol (DataGrid, HtmlTable, DataList, etc..). no
Setting Timeout Maximum waiting time to get response from server no
Reply–To Ability to specify reply-to address (instead of using from address while replying) no
Send Emails from a Dataset The ability to perform a mail merge on an ADO.NET dataset containing hundreds of thousands of emails. no
Send Emails from a DataTable The ability to perform a mail merge on an ADO.NET datatable containing hundreds of thousands of emails. no
Send Emails from a DataReader The ability to perform a mail merge on an ADO.NET datareader containing hundreds of thousands of emails. no