7/28/08

Sending e-mail with attachments from an ASP.NET page

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);