Signup · Login
Stardeveloper.com  
Home · Articles · Forums · Advertise · Contact
Article Categories
.NET  .NET
  ASP (15)
  ASP.NET (26)
  ADO (16)
  ADO.NET (10)
  COM (6)
  Web Services (4)
  C# (1)
  VB.NET (3)
  IIS (2)

J2EE  J2EE
  JSP (15)
  Servlets (9)
  Web Services (1)
  EJB (4)
  JDBC (4)
  E-Commerce (1)
  J2ME (1)
  Products (1)
  Applets (1)
  Patterns (1)
Latest Forum Activity
what is the right code to link the asp page t..
by amylisa on 22 Jul 2008 Go To Post

Can Loader.asp Get Form Elements
by azziham on 14 Jul 2008 Go To Post

Good asp resource sites
by codemylife on 3 Jul 2008 Go To Post

Re: Unable to insert data in an Access databa..
by asia on 3 Jul 2008 Go To Post

Re: problem with do while loop
by idsanjeev on 30 Jun 2008 Go To Post

Log In
UserName Or Email:

Password:

Auto-Login:

Miscellaneous Links
  Submit Article

Hosted by Securewebs.com
 
Home : .NET : ASP.NET : Sending E-Mails using ASP.NET
 

Sending E-Mails using ASP.NET
by Faisal Khan.

Overview
In this tutorial we will learn how to send e-mails of both text and HTML formats using classes of System.Web.Mail namespace.

Before delving in to the source code, I'll briefly explain the MailMessage and SmtpMail classes which we'll be using to send e-mails.

System.Web.Mail.MailMessage
An object of this class represents a single e-mail message. Properties of this class are listed below :

Properties of MailMessage
Properties of MailMessage

To use this class, we create a new object using the empty constructor, set some of it's properties and then send the message using static method of SmtpMail class's Send() method.

	MailMessage mail = new MailMessage();

		mail.To = "receivers@email.address";
		mail.From = "senders@email.address";
		mail.BodyFormat = MailFormat.Text;
		mail.Subject = "Subject of this Email";
		mail.Body = "Body of this message.";

	SmtpMail.Send(mail);

All the code required to create and send a MailMessage object has been shown above. If you've understood this code then you don't need to go any further. Just change the values to suite your needs. In the rest of this article we will create a sendMail.aspx page which will make use of the above code.

System.Web.Mail.SmtpMail
This class is used to *send* e-mails ( MailMessages ) using SMTP protocol. All we are interested as far as this tutorial is concerned are the two static methods ( Send() ) it provides. You just use the static method, provide a valid MailMessage object as the argument, and send it!.

Properties And Methods of SmtpMail
Properties And Methods of SmtpMail

sendMail.aspx
It is time now that we create a simple ASP.NET page which provides a form to you, you enter the values and hit the "send" button to send the message. A confirmation message is then displayed.

Create a new .aspx page and save it as sendMail.aspx in a folder accessible by your server. Now copy and paste the following code in it :

<%@ Page Language="C#" %>
<%@ Import NameSpace="System.Web.Mail" %>

<script runat="server">
	protected void Page_Load(Object Sender, EventArgs e) {
		if(!Page.IsPostBack)
			Message.Text = "Sending E-Mail using ASP.NET";
	}

	protected void Send_Email(Object Sender, EventArgs e) {
		MailMessage mail = new MailMessage();

			mail.To = Request.Form["to"];
			mail.From = Request.Form["from"];

			if(Request.Form["format"].Equals("text"))
				mail.BodyFormat = MailFormat.Text;
			else
				mail.BodyFormat = MailFormat.Html;

			mail.Subject = Request.Form["subject"];
			mail.Body = Request.Form["body"];

		SmtpMail.Send(mail);
		Response.Flush();

		Message.Text = "Message Sent...<br><br>" + 
				"<a href=\"sendMail.aspx\">Go Back</a>";
	}
</script>
<html>
<head>
	<title>Sending E-Mails using ASP.NET ( Part I )</title>
	<style>
	a { font-size:8pt; font-family:Tahoma; font-weight:normal;
		color:maroon; }
	</style>
	<link rel="stylesheet" href="css/demostyle.css">
</head>
<body bgcolor="white">

<p align="center" class="title">
	<asp:label id="Message" runat="server" />
</p>

<% if(!Page.IsPostBack) { %>
	<p align="center">All fields are required.</p>

<form method="post" runat="server">	
<table width="80%" border="0" align="center" cellpadding="2" cellspacing="2">
	<tr>
		<td width="20%" align="right">From : </td>
		<td><input type="text" name="from"></td>
	</tr>
	<tr>
		<td align="right">To : </td>
		<td><input type="text" name="to"></td>
	</tr>
	<tr>
		<td align="right">MailFormat : </td>
		<td>
			<select name="format">
				<option value="text">Text</option>
				<option value="html">HTML</option>
			</select>
		</td>
	</tr>
	<tr>
		<td align="right">Subject : </td>
		<td><input type="text" name="subject" style="width:400;"></td>
	</tr>
	<tr>
		<td valign="top" align="right">Body : </td>
		<td>
		<textarea cols="5" rows="10" name="body" style="width:400;">
		</textarea></td>
	</tr>
	<tr>
		<td> </td>
		<td>
		<input type="submit" OnServerClick="Send_Email" runat="server" 
		class="submit" value=" " /> Send Email!
		</td>
	</tr>
</table>
</form>
<% } %>

</body>
</html>

Explanation
The first line tells that we will be using C# to code the ASP.NET page. Second line is an Import directive which tells the the C# compiler that we are making use of classes from System.Web.Mail namespace.

<%@ Page Language="C#" %>
<%@ Import NameSpace="System.Web.Mail" %>

Explanation of sendMail.aspx code
Then we enter the script block. Notice that this script block has a "runat" attribute with a value of "server". This means that the code inside this block is meant to run on the server-side. In this code block we have two methods; Page_Load() and Send_Email().

<script runat="server">

Page_Load() is actually an event which is raised when the ASP.NET page is loaded. This method is present in all ASP.NET pages, to make use of this event, all you have to do is to provide some implementation of this method ( i.e. put some code in this method ). Here in this method we are checking for the IsPostBack property of Page object. This property like it's name suggests gives a "true" value when the page has been posted back i.e. the user has pressed the submit button on the Form to post the page back.

So this Page.IsPostBack property is very useful. It allows us to put both the Form and Form handler code ( when the Form is posted back ) on the same page. What we do here is to check this property, and if user has not posted the page back then set the value of Message control to the provided one. What is a Message control? we'll see later.

protected void Page_Load(Object Sender, EventArgs e) {
	if(!Page.IsPostBack)
		Message.Text = "Sending E-Mail using ASP.NET ( Part I )";
}

The second method; Send_Email() is our own event method which is called when user presses the submit button on the Form. In this method we use the same code we learned on the first page to create a MailMessage object and then send it using SmtpMail class's Send() method.

Once done, we set the value of Message control to a confirmation message and a link back to the Form.


 ( 1 Remaining ) Next

Comments/Questions ( Threads: 16, Comments: 31 )
    Contains 1 or more replies by the Author of this Article.
    Contains 1 or more replies by Faisal Khan.

  1. Sending an e-mail using ASP.NET
  2. regarding sending mail
  3. not able to send email VERY URGENT!!
  4. how can i use flash file in asp.net page using vb.net tool?(answer quick)
  5. how can I save the file(picture file) or send that file with mail on ftp server from http server?
  6. how can I save the file(picture file) or send that file with mail on ftp server?
  7. i want to ask one question....
  8. not able to send email with smtp VERY URGENT!! ( 1 Reply ) This thread contains 1 reply by the Author of this Article. This thread contains 1 reply by Faisal Khan.
  9. How to find the name of SMTP Server ( 1 Reply )
  10. SMTP authentication (reley error)
  11. Error:Could Not Access CDO.Message Object (urgent)
  12. Error:Could Not Access CDO.Message Object (urgent)
  13. Working environment required for send a mail with smtoMail ( 1 Reply ) This thread contains 1 reply by the Author of this Article. This thread contains 1 reply by Faisal Khan.
  14. Could not access 'CDO.Message' object. ( 1 Reply ) This thread contains 1 reply by the Author of this Article. This thread contains 1 reply by Faisal Khan.
  15. I am getting this cdo.message object error on smtpmail.mail ( 10 Replies ) This thread contains 1 reply by the Author of this Article. This thread contains 1 reply by Faisal Khan.
  16. This article by Faisal Khan is a masterpiece! ( 1 Reply ) This thread contains 1 reply by the Author of this Article. This thread contains 1 reply by Faisal Khan.

Post Comments/Questions

In order to post questions/comments, you must be logged-in. If you are not a member yet, then signup, otherwise login. Once you login then come back to this page and you'll see a form right here which will allow you to post comments/questions.

Please note, one of the benefits of signing up is to be notified immediately by email everytime you receive a reply to the thread you have subscribed.

 
© 1999 - 2008 Stardeveloper.com, All Rights Reserverd.