|
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>";
}
Then we close the script code block.
</script>
We have been talking of Message control but where is it and what is a control?
Well, a control is a server-side component which does some thing useful. The Message
control is of type ASP:Label and the only reason we are using it is that we can set it's
value using logic on the server-side. We will learn more about controls in some other
article later.
We declare ASP:Label control on the top of the page. Notice the value of "id"
attribute? this is why we have been using Message handle to set it's value.
<p align="center" class="title">
<asp:label id="Message" runat="server" />
</p>
Next we again look for Page.IsPostBack property and if the page has not been posted
back then show the e-mail Form to the user.
<% if(!Page.IsPostBack) { %>
... all Form code here
<% } %>
One last thing interesting is that we said that our Send_Email() method is an event
method raised on the server-side when the user presses the submit button, how? we did
that by putting yet another type of server-side control. In the submit button code
we put two new attributes, "runat=server" to make it a control and "OnServerClick". This
"OnServerClick" event is the key and it's value is our Send_Email() method. So our
Send_Email() method will be called every time user presses this submit button.
<input type="submit" OnServerClick="Send_Email" runat="server"
class="submit" value=" " /> Send Email!
Don't worry if you cannot swallow this server-side control and event model. We will
study it in detail some other time. For now let's move forward to the next page where we
run this sendMail.aspx page and see the results.
Running the sendMail.aspx page
Ok, it is time to run the sendMail.aspx page. You can use a URL like http://localhost/net/sendMail.aspx
on your system, provided where you have placed the sendMail.aspx page. On my system
the sendMail.aspx page looked like following :

sendMail.aspx
Now enter your valid email address in the "From" and "To" fields, any text in the
subject and body fields and hit the "Send Email!" button on the sendMail.aspx page on
your system. If all goes well you should see a confirmation message like I did :

sendMail.aspx - Confirmation Message
If you don't get a confirmation message and an error message then most probably
SMTP service is not enabled on your system. You can then provide your own SMTP server
( provided by your ISP ) and change the SmtpMail.Send(mail) line in the Send_Email()
method to the one below :
SmtpMail.SmtpServer = "smtp.yourisp.com";
SmtpMail.Send(mail);
And this time you should be able to send your e-mail. Well this is it for this tutorial,
one thing to keep in mind is to provide valid email address in From and To fields and
non-empty values in subject and body fields. If you don't do that you'll get a nasty
ASP.NET error message on your face. This is why I have called this tutorial Part I,
because there is no validation for the values entered by the user. Hopefully in Part II
we'll learn how to handle a case when user didn't enter a value and pressed the "Send
Email!" button or he provided an invalid destination e-mail address.
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>";
}
Then we close the script code block.
</script>
We have been talking of Message control but where is it and what is a control?
Well, a control is a server-side component which does some thing useful. The Message
control is of type ASP:Label and the only reason we are using it is that we can set it's
value using logic on the server-side. We will learn more about controls in some other
article later.
We declare ASP:Label control on the top of the page. Notice the value of "id"
attribute? this is why we have been using Message handle to set it's value.
<p align="center" class="title">
<asp:label id="Message" runat="server" />
</p>
Next we again look for Page.IsPostBack property and if the page has not been posted
back then show the e-mail Form to the user.
<% if(!Page.IsPostBack) { %>
... all Form code here
<% } %>
One last thing interesting is that we said that our Send_Email() method is an event
method raised on the server-side when the user presses the submit button, how? we did
that by putting yet another type of server-side control. In the submit button code
we put two new attributes, "runat=server" to make it a control and "OnServerClick". This
"OnServerClick" event is the key and it's value is our Send_Email() method. So our
Send_Email() method will be called every time user presses this submit button.
<input type="submit" OnServerClick="Send_Email" runat="server"
class="submit" value=" " /> Send Email!
Don't worry if you cannot swallow this server-side control and event model. We will
study it in detail some other time. For now let's move forward to the next page where we
run this sendMail.aspx page and see the results.
Running the sendMail.aspx page
Ok, it is time to run the sendMail.aspx page. You can use a URL like http://localhost/net/sendMail.aspx
on your system, provided where you have placed the sendMail.aspx page. On my system
the sendMail.aspx page looked like following :

sendMail.aspx
Now enter your valid email address in the "From" and "To" fields, any text in the
subject and body fields and hit the "Send Email!" button on the sendMail.aspx page on
your system. If all goes well you should see a confirmation message like I did :

sendMail.aspx - Confirmation Message
If you don't get a confirmation message and an error message then most probably
SMTP service is not enabled on your system. You can then provide your own SMTP server
( provided by your ISP ) and change the SmtpMail.Send(mail) line in the Send_Email()
method to the one below :
SmtpMail.SmtpServer = "smtp.yourisp.com";
SmtpMail.Send(mail);
And this time you should be able to send your e-mail. Well this is it for this tutorial,
one thing to keep in mind is to provide valid email address in From and To fields and
non-empty values in subject and body fields. If you don't do that you'll get a nasty
ASP.NET error message on your face. This is why I have called this tutorial Part I,
because there is no validation for the values entered by the user. Hopefully in Part II
we'll learn how to handle a case when user didn't enter a value and pressed the "Send
Email!" button or he provided an invalid destination e-mail address.
|