Email Sending in ASP.net 2.0
This article will focus on following concept Simplest way of sending email Writing HTML Email Creating Email with attachment.
Import the namespace, and create instances of required classes
We are going to use the
SmtpMail
and MailMessage
classes, which belong to the System.Web.Mail
namespace. In order to use them, we will need to import the System.Web.Mail
namespace like this:<%@ Import Namespace="System.Web.Mail" %>
Exploring the Classes in the
There are 16 different classes in the
System.Net.Mail
NamespaceThere are 16 different classes in the
System.Net.Mail
namespace, all related to send email to a specifiedSimple Mail Transfer Protocol (SMTP) server for delivery. The two core classes in this namespace are:MailMessage
- represents an email message; has properties likeFrom
,To
,Subject
,Body
, and so on.SmtpClient
- sends a specifiedMailMessage
instance to a specified SMTP server.
When sending an email from an ASP.NET 2.0 page you will, typically:
- Create a
MailMessage
object - Assign its properties
- Create an instance of the
SmtpClient
class - Specify details about the SMTP server to use (if they're not already specified within
Web.config
) - Send the
MailMessage
via theSmtpClient
object'sSend
method
Steps 1 and 2 may be bypassed as the
SmtpClient
class's Send
method can accept either a MailMessage
object or four strings, representing the from, to, subject, and body contents of the email message.
The System.Net.Mail namespace's other classes allow for more advanced email functionality. There are classes that can be used to add attachments to an email message, to embed objects within an email, to specify SMTP server authentication information, and Exception-derived classes for handling SMTP-specific exceptions.
One of the most common functionalities used in Web development is sending email from a Web page.
Using the code
The HTML Design contains provision to enter sender�s name, email id and his comments. On click of the send email button the details will be sent to the specified email .
The Send mail functionality is similar to Dotnet 1.1 except for few changes
- System.Net.Mail.SmtpClient is used instead of System.Web.Mail.SmtpMail (obsolete in Dotnet 2.0).
- System.Net.MailMessage Class is used instead of System.Web.Mail.MailMessage (obsolete in Dotnet 2.0)
- The System.Net.MailMessage class collects From address as MailAddress object.
- The System.Net.MailMessage class collects To, CC, Bcc addresses as MailAddressCollection.
- MailMessage Body Format is replaced by IsBodyHtml
.ASPX CODE:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="sendmail.aspx.cs"Inherits="sapnamalik_sendmail" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table id="tblemail" runat="server" cellpadding="0" cellspacing="0"width="100%">
<tr>
<td>
<fieldset>
<legend style="border: none; font-weight: bold; color: #660099; font-size: 12pt;
font-family: Segoe UI">Send Your Email </legend>
<table id="tblbody" runat="server" cellpadding="2"cellspacing="2" width="100%">
<tr>
<td colspan="2" align="center">
Fields marked with an asterisk (<asp:LabelID="Label1" runat="server" CssClass="redtext"
Text="*"></asp:Label>)are mandatory
</td>
</tr>
<tr>
<td colspan="2" align="center">
<asp:Label ID="lblmail" CssClass="redtext"runat="server"></asp:Label></td>
</tr>
<tr>
<td width="10%" align="right">
<asp:Label ID="lblto" runat="server"Text="To:"></asp:Label>
<asp:Label ID="lblredstar1" runat="server"CssClass="redtext" Text="*"></asp:Label>
</td>
<td align="left" width="90%">
<asp:TextBox ID="txtemailto" Width="50%"runat="server" TabIndex="1"></asp:TextBox>
<asp:RegularExpressionValidatorID="REVUserEMail" runat="server" CssClass="redtext"
Display="static"ControlToValidate="txtemailto" ErrorMessage="Enter valid Email Address"
ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td width="10%" align="right">
<asp:Label ID="lblcc" runat="server"Text="CC:"></asp:Label>
</td>
<td align="left" width="90%">
<asp:TextBox ID="txtemailcc" Width="50%"runat="server" TabIndex="10"></asp:TextBox>
</td>
</tr>
<tr>
<td width="10%" align="right">
<asp:Label ID="lblBcc" runat="server"Text="BCC:"></asp:Label>
</td>
<td align="left" width="90%">
<asp:TextBox ID="txtemailbcc" Width="50%"runat="server" TabIndex="10"></asp:TextBox>
</td>
</tr>
<tr>
<td width="10%" align="right">
<asp:Label ID="lblfrom" runat="server"Text="From:"></asp:Label>
<asp:Label ID="lblredstar3" runat="server"CssClass="redtext" Text="*"></asp:Label>
</td>
<td align="left" width="90%">
<asp:TextBox ID="txtemailfrom" Width="50%"runat="server"></asp:TextBox>
<asp:RegularExpressionValidatorID="RegularExpressionValidator1" runat="server" CssClass="redtext"
Display="static"ControlToValidate="txtemailfrom" ErrorMessage="Enter valid Email Address"
ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td width="10%" align="right">
<asp:Label ID="lblsubject" runat="server"Text="Subject:"></asp:Label>
<asp:Label ID="lblredstar4" runat="server"CssClass="redtext" Text="*"></asp:Label>
</td>
<td align="left" width="90%">
<asp:TextBox ID="txtsubject" Width="50%"runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td width="10%" align="right">
<asp:Label ID="lblAttachFile"runat="server" Text="File to send:"></asp:Label>
</td>
<td align="left" width="90%">
<input type="file" id="fileAttachement"runat="server" name="fileAttachement" />
</td>
</tr>
<tr>
<td>
</td>
<td align="left">
<asp:Button ID="btnSendEmail"runat="server" Width="60px" Text="Send Mail" OnClick="btnSendEmail_Click" />
</td>
</tr>
</table>
</fieldset>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
.CS CODE:-
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net.Mail;
using System.Data.SqlClient;
using System.IO;
public partial class sapnamalik_sendmail : System.Web.UI.Page
{
SqlDataAdapter da;
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand();
SqlConnection con;
string FileName;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSendEmail_Click(object sender, EventArgs e)
{
if (txtemailto.Text == "" || txtemailfrom.Text == "" || txtemailcc.Text =="" || txtemailbcc.Text == "" || txtsubject.Text == "")
{
txtemailto.Focus();
lblmail.Text = "Please fill all mandatory fields.";
lblmail.Visible = true;
return;
}
sendMessage();
txtemailto.Text = "";
txtemailfrom.Text = "";
txtemailcc.Text = "";
txtemailbcc.Text = "";
txtsubject.Text = "";
}
private void sendMessage()
{
string cc = txtemailcc.Text;
string bcc = txtemailbcc.Text;
SmtpClient smtpClient = new SmtpClient();
MailMessage mailMessage = new MailMessage();
try
{
MailAddress fromAddress = new MailAddress(txtemailfrom.Text);
mailMessage.From = fromAddress;
string MailTo = txtemailto.Text;
mailMessage.To.Add(MailTo);
//Sending Email with CC and BCC options
//Set the CC address of the mail message
if (txtemailcc.Text.Trim().Length != 0)
mailMessage.CC.Add(txtemailcc.Text);
//Set the BCC address of the mail message
if (txtemailbcc.Text.Trim().Length != 0)
mailMessage.Bcc.Add(txtemailbcc.Text);
mailMessage.Subject = txtsubject.Text;
//Sending Email with Attachment facility
if (fileAttachement.PostedFile != null)
{
HttpPostedFile AttachFile = fileAttachement.PostedFile;
int AttachFileLength = AttachFile.ContentLength;
if (AttachFileLength > 0)
{
FileName =Path.GetFileName(fileAttachement.PostedFile.FileName);
}
}
//Note: When you make "IsBodyHtml" to true make
//ValidateRequest="false" in page derective
//As to make HTML content passed.
string Body = "";
Body += '\n' + "Email:" + txtemailfrom.Text;
Body += '\n' + "";
mailMessage.IsBodyHtml = true;
mailMessage.Body = Body;
//Sending Email with Reply-To options
//Setting Reply address.
if (txtemailto.Text.Trim().Length != 0)
{
mailMessage.Headers.Add("Reply-To", txtemailto.Text);
}
else
{
mailMessage.Headers.Add("Reply-To", txtemailto.Text);
}
smtpClient.Host = "localHost";
smtpClient.Send(mailMessage);
lblmail.Visible = true;
lblmail.Text = "Your mail has been sent successfully";
tblemail.Visible = true;
}
catch (Exception ex)
{
lblmail.Visible = true;
lblmail.Text = "There has been some error, please try again after some time.";
}
}
}
Output:
No comments:
Post a Comment