Sending Email with ASP.NET
In this article we will be discussing on how you can send emails using your
ASP.NET applications. Consider the following problem:
The new user registration Web application needs to automatically send an e-mail
message confirming new user registration for an online shopping site. Since the
application requires same subject and same body matter for the mail, we have
then as strings already written in the code. Although if your application
requires you to have text boxes where in you can write the subject and the body,
you can very well do that.
Mechanism to Send an E-Mail Message from an ASP.NET page
In ASP.NET application, you can send electronic mails by using either the
SmtpMail class or the
MailMessage class found in the
System.Web.Mail namespace. The SmtpMail class can be used to send simple
emails that do not contain any special fields, such as cc field and the bcc
field where as the MailMessage class can be used to send emails that contain
special fields, such as cc field or the bcc field.
Syntax of SmtpMail class is as follows:
SmtpMail.Send(from, to, subject, message text)
To use the MailMessage class, you first need
to create an instance of the class by using the following syntax:
MailMessage msg = new MailMessage();
To send an email message in HTML format, you can
use the HtmlTextWriter class. To instantiate the HtmlTextWriter class, first
create an object of the StringWriter class. This will represent a stream in
which data is written as strings. The syntax for the same is given below:
StringWriter strwriter
= new StringWriter();
HtmlTextWriter htmltxtwriter = new
HtmlTextWriter(strwriter);
You need to send an email message confirming
registration, although as per the application it was required that we Bcc it to
the head of "E-Shoppe site", but for this demo sake we have made a text box, as
alternate email id, to which we will be sending the email as Bcc. The user
interface looks like this:
Note that for this to run you must include the following namespaces in your
application:
System.Web.Mail
System.IO
Prereqisites
Before you try this, you must check that the Microsoft SMTP Service
is available. To check this, go to Run->type inetmgr. Select the "Default
SMTP Virtual Server", and see the play button (shown in the shaded blue portion)
is disabled. If it is not you should click the play button.
In case your SMTP Virtual Server is not configured, you need to select the
"Default SMTP Virtual Server", click Actions in the menu bar, select properties,
and go to Access tab. Click the Authentication button;
And check the Anonymous access as shown in the figure below:
You may need to change the SmtpServer, since its a web application:
Smtpmail.SmtpServer = "<IP address of your web
server>";
Code to send the Email with ASP.NET
I am attaching the code for the same problem, you can download it. Notice the
code in the click event of the button i.e. where the main functionality is being
performed. Download example project.
Once you run this application, you would get emails on the respective email
IDs. And the email would look like this:
Working with Attachments
You can also attach files in your emails. Perform the following steps to do
this:
1. Drag from the HTML tab of the toolbox, a file field, it looks like as shown
in the figure:
You can also add this in the HTML: <input id="myfile"
type="file" runat="server">
2. Go to its properites window and change its ID to "myfile"
3. You need to have an object of MailAttachment to do this class, so make a
declaration as
public MailAttachment attach;
4. Now add the following code before you call the Send method of SmtpMail.
if(myfile.PostedFile
!= null)
{
attach =
new MailAttachment (@myfile.PostedFile.FileName);
msg.Attachments.Add(attach);
}
This is only basic functionality, but you'll be fine if you don't have strong demands. Otherwise, you should get
Auto Email which have a lot of features well tested on many other sites worldwide.
 |