You are on page 1of 8

HowtoSendanEmailwithVerificationlinktouserinAsp.

netafterregistration
PostedbyVijaySaklanion11:58AMwith14comments
Introduction:InthispostIwilltrytoexplainhowwecansendtheverificationEmailwithlinktouserafterregistrationin
Asp.net.

Description:
InthepreviousarticleihaveexplainedHowtoSendEmailwithAttachmentinAsp.net,HowtosendEmailinAsp.netusing
Web.config.
HereIcreatedatableUSER_REGISTRATION.USER_IDisprimarykey.

USER_ID
USERNAME
FIRST_NAME
LAST_NAME
EMAIL
IS_APPROVE
PASSWORD

int
varchar(50)
varchar(50)
varchar(50)
varchar(50)
bit
varchar(50)

AddtwowebformstoprojectUser_registration.aspxandVerification.aspx.
DraganddropthecontrolsfromToolboxto.aspxpage.

<tableborder="1pxsolid"width="330px">
<tr><bstyle="color:Blue;">SendVerificationlinktoUserafterRegistartion</b></tr>
<tr><td>Username:</td><td>
<asp:TextBoxID="txtusername"runat="server"></asp:TextBox></td></tr>
<tr><td>FirstName:</td><td>
<asp:TextBoxID="txtfirst"runat="server"></asp:TextBox></td></tr>
<tr><td>LastName:</td><td>
<asp:TextBoxID="txtlast"runat="server"></asp:TextBox></td></tr>
<tr><td>Email:</td><td>
<asp:TextBoxID="txtemail"runat="server"></asp:TextBox></td></tr>
<tr><td>Password:</td><td>
<asp:TextBoxID="txtpassword"runat="server"TextMode="Password"></asp:TextBox></td></tr>
<tr><td>ConfirmPassword:</td><td>

<asp:TextBoxID="txtconfirm"runat="server"TextMode="Password"></asp:TextBox></td></tr>
<tr><td>&nbsp;</td><td>
<asp:ButtonID="Button1"runat="server"Text="Register"OnClientClick="returnValidateEmail();"
onclick="Button1_Click"/></td></tr>
</table>

AddthebelowgivenJavascriptbetweenHeadTagtovalidatetheEmailTextbox:

<scriptlanguage="javascript"type="text/javascript">
functionValidateEmail(){
varemailRegex=newRegExp(/^([\w\.\]+)@([\w\]+)((\.(\w){2,3})+)$/i);
varemailAddress=document.getElementById("<%=txtemail.ClientID%>").value;
varvalid=emailRegex.test(emailAddress);
if(!valid){
alert("PleaseEnterValidEmailaddress");
returnfalse;
}else
returntrue;
}
</script>

Nowgoto.aspx.cspageandwritethebelowmentioncode:

usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Configuration;
usingSystem.Net.Mail;
usingSystem.Net;

SqlConnectioncon=newSqlConnection(ConfigurationManager.ConnectionStrings["con"].ToString());
protectedvoidPage_Load(objectsender,EventArgse)
{
if(con.State==ConnectionState.Closed)
{
con.Open();
}
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
if(IsUsernameEmailExist())
{

Messagebox("Username/Emailaddressalreadyexists.Pleasetryanother");
return;

}
if(txtpassword.Text==txtconfirm.Text)
{
SqlCommandcmd=newSqlCommand("insertintoUSER_REGISTRATION
(USERNAME,FIRST_NAME,LAST_NAME,EMAIL,PASSWORD)
values(@USERNAME,@FIRST_NAME,@LAST_NAME,@EMAIL,@PASSWORD)",con);
cmd.Parameters.AddWithValue("@USERNAME",txtusername.Text);
cmd.Parameters.AddWithValue("@FIRST_NAME",txtfirst.Text);
cmd.Parameters.AddWithValue("@LAST_NAME",txtlast.Text);
cmd.Parameters.AddWithValue("@EMAIL",txtemail.Text);
cmd.Parameters.AddWithValue("@PASSWORD",txtpassword.Text);
cmd.ExecuteNonQuery();
Sendemail();
Clear();
Messagebox("UserRegisterSuccessfully");
cmd.Dispose();

}
else
{
Messagebox("PassowrdNotMatch");
}
}

publicvoidSendemail()
{
stringActivationUrl;
try
{
MailMessagemessage=newMailMessage();
message.From=newMailAddress("demo@gmail.com","Saklani");
message.To.Add(txtemail.Text);
message.Subject="VerificationEmail";
ActivationUrl=
Server.HtmlEncode("http://localhost:9525/Important_Testing/Verification.aspx?USER_ID="+
GetUserID(txtemail.Text));
message.Body="<ahref='"+ActivationUrl+"'>ClickHeretoverifyyouracount</a>";
message.IsBodyHtml=true;
SmtpClientsmtp=newSmtpClient();
smtp.Host="smtp.gmail.com";
smtp.Port=587;
smtp.Credentials=newSystem.Net.NetworkCredential("demo@gmail.com","demo123");
smtp.EnableSsl=true;

smtp.Send(message);
}
catch(Exceptionex)
{
}
}
privatestringGetUserID(stringEmail)
{
SqlCommandcmd=newSqlCommand("SELECTUSER_IDFROMUSER_REGISTRATIONWHEREEMAIL=@EMAIL",
con);
cmd.Parameters.AddWithValue("@EMAIL",txtemail.Text);
stringUserID=cmd.ExecuteScalar().ToString();
returnUserID;
}

privateboolIsUsernameEmailExist()
{
SqlCommandcmd=newSqlCommand("Select*fromUSER_REGISTRATIONwhereUSERNAME='"+
txtusername.Text+"'orEMAIL='"+txtemail.Text+"'",con);
cmd.ExecuteNonQuery();
DataTabledt=newDataTable();
SqlDataAdapteradp=newSqlDataAdapter(cmd);
adp.Fill(dt);
if(dt.Rows.Count>0)
{
returntrue;
}
else
{
returnfalse;
}
}
privatevoidMessagebox(stringMessage)
{
LabellblMessageBox=newLabel();

lblMessageBox.Text=
"<scriptlanguage='javascript'>"+Environment.NewLine+
"window.alert('"+Message+"')</script>";

Page.Controls.Add(lblMessageBox);

publicvoidClear()
{
txtusername.Text="";
txtfirst.Text="";
txtlast.Text="";
txtemail.Text="";
txtpassword.Text="";
txtconfirm.Text="";
}

InVB(.aspx.vb)

ImportsSystem.Data
ImportsSystem.Data.SqlClient
ImportsSystem.Configuration
ImportsSystem.Net.Mail

DimconAsNewSqlConnection(ConfigurationManager.ConnectionStrings("con").ToString())

ProtectedSubPage_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.Load
Ifcon.State=ConnectionState.ClosedThen
con.Open()
EndIf
EndSub
ProtectedSubButton1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesButton1.Click
IfIsUsernameEmailExist()Then

Messagebox("Username/Emailaddressalreadyexists.Pleasetryanother")
Return
EndIf
Iftxtpassword.Text=txtconfirm.TextThen
DimcmdAsNewSqlCommand("insertintoUSER_REGISTRATION
(USERNAME,FIRST_NAME,LAST_NAME,EMAIL,PASSWORD)
values(@USERNAME,@FIRST_NAME,@LAST_NAME,@EMAIL,@PASSWORD)",con)
cmd.Parameters.AddWithValue("@USERNAME",txtusername.Text)
cmd.Parameters.AddWithValue("@FIRST_NAME",txtfirst.Text)
cmd.Parameters.AddWithValue("@LAST_NAME",txtlast.Text)
cmd.Parameters.AddWithValue("@EMAIL",txtemail.Text)
cmd.Parameters.AddWithValue("@PASSWORD",txtpassword.Text)
cmd.ExecuteNonQuery()
Sendemail()
Messagebox("UserRegisterSuccessfully")

cmd.Dispose()
Else
Messagebox("PassowrdNotMatch")
EndIf
EndSub
PrivateFunctionIsUsernameEmailExist()AsBoolean
DimcmdAsNewSqlCommand(("Select*fromUSER_REGISTRATIONwhereUSERNAME='"+txtusername.Text
&"'orEMAIL='")+txtemail.Text&"'",con)
cmd.ExecuteNonQuery()
DimdtAsNewDataTable()
DimadpAsNewSqlDataAdapter(cmd)
adp.Fill(dt)
Ifdt.Rows.Count>0Then
ReturnTrue
Else
ReturnFalse
EndIf
EndFunction
PrivateSubMessagebox(ByValMessageAsString)
DimlblMessageBoxAsNewLabel()

lblMessageBox.Text="<scriptlanguage='javascript'>"+Environment.NewLine&"window.alert('"&
Message&"')</script>"

Page.Controls.Add(lblMessageBox)

EndSub

PublicSubSendemail()
DimActivationUrlAsString
Try
DimmessageAsNewMailMessage()
message.From=NewMailAddress("demo@gmail.com","Saklani")
message.[To].Add(txtemail.Text)
message.Subject="VerificationEmail"
ActivationUrl=
Server.HtmlEncode("http://localhost:9525/Important_Testing/Verification.aspx?USER_ID="&
GetUserID(txtemail.Text))
message.Body="<ahref='"&ActivationUrl&"'>ClickHeretoverifyyouracount</a>"
message.IsBodyHtml=True
DimsmtpAsNewSmtpClient()
smtp.Host="smtp.gmail.com"

smtp.Port=587
smtp.Credentials=NewSystem.Net.NetworkCredential("demo@gmail.com","demo123")
smtp.EnableSsl=True
smtp.Send(message)
CatchexAsException
EndTry
EndSub
PrivateFunctionGetUserID(ByValEmailAsString)AsString
DimcmdAsNewSqlCommand("SELECTUSER_IDFROMUSER_REGISTRATIONWHEREEMAIL=@EMAIL",con)
cmd.Parameters.AddWithValue("@EMAIL",txtemail.Text)
DimUserIDAsString=cmd.ExecuteScalar().ToString()
ReturnUserID
EndFunction

AfterthatnowchecktheQueryStringvalueonVerification.aspxpage.Writethebelowgivencodeon.aspx.cspage:

usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Configuration;

SqlConnectioncon=newSqlConnection(ConfigurationManager.ConnectionStrings["con"].ToString());
stringUSERID,USERNAME;
protectedvoidPage_Load(objectsender,EventArgse)
{
if(Request.QueryString["USER_ID"]!=null)
{
USERID=Request.QueryString["USER_ID"];
SqlCommandcmd=newSqlCommand("UpdateUSER_REGISTRATIONsetIS_APPROVE=1where
USER_ID=@USER_ID",con);
cmd.Parameters.AddWithValue("@USER_ID",USERID);
con.Open();
cmd.ExecuteNonQuery();
Response.Write(Request.QueryString["USER_ID"]);
}
}

InVB(.aspx.vb)

ImportsSystem.Data
ImportsSystem.Data.SqlClient

PrivateconAsNewSqlConnection(ConfigurationManager.ConnectionStrings("con").ToString())

PrivateUSERIDAsString,USERNAMEAsString
ProtectedSubPage_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.Load
IfRequest.QueryString("USER_ID")IsNotNothingThen
USERID=Request.QueryString("USER_ID")
DimcmdAsNewSqlCommand("UpdateUSER_REGISTRATIONsetIS_APPROVE=1where
USER_ID=@USER_ID",con)
cmd.Parameters.AddWithValue("@USER_ID",USERID)
con.Open()
cmd.ExecuteNonQuery()
Response.Write(Request.QueryString("USER_ID"))
EndIf
EndSub

Nowruntheprojectandchecktheresult.

You might also like