Sending e-mail with attachments from an ASP.NET page
by Sriram Vaideeswaran.
Overview :
The task of sending e-mails has become much easier in ASP.NET. In previous versions of ASP we either used a third party component or the limited functionality of CDONTS component for sending emails. The .NET framework provides simpler but powerful class libraries for sending emails. These classes are in the System.Web.Mail Namespace. Following table lists the classes and their use :
Class | Purpose |
MailAttachment | To construct an email attachment. |
MailMessage | To construct an email message. |
SmtpMail | To send an email attachment using the SMTP mail service. |
High-end commercial email component :
牋 i. AspEmail : Most feature-rich mailing component. Supports message queueing, embedded images, secure mail, authentication. Read more.
In order to access these classes we have to import the System.Web.Mail namespace within our ASP.NET page using the import directive as shown below :
<% @ Import NameSpace = "System.Web.Mail" %>
Then we construct an email message by creating an Instance of the MailMessage class as shown below :
MailMessage MyMail = new MailMessage();
The MailMessage class has various properties which need to be set before sending emails. Following table shows some of the important properties of the MailMessage class :
Property | Description |
Attachments | List of attachments that is sent with the email. |
Body | Body of the email message. |
From | Email address of the sender. |
Subject | Subject line of the email message. |
To | Email address of the recipient. |
To send an attachment with email we need to create an instance of the MailAttachment class. We pass the full path of the file to be attached as an argument to the constructor of MailAttachment class as shown below :
MailAttachment MyAttachment = new MailAttachment("C://My Folder//MyFile.txt");
Note : The file name passed should be valid file which exists on the server.
This MailAttachment instance is then attached to the mail by using the Attachment property of the Mail class as shown below :
MyMail.Attachments.Add(MyAttachment);
Finally we send the email using the Send() method of the SmtpMail Class as shown below :
SmtpMail.Send(MyMail);