contact.aspx
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page language="VB" title="Untitled Page" %>  
 <script runat="server">
        Protected Sub SubmitForm_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            If Not Page.IsValid Then Exit Sub

            Dim SendResultsTo As String = "contact@example.com"
            Dim smtpMailServer As String = "mail.yoursmtp.com"
            Dim smtpUsername As String = "yourusername"
            Dim smtpPassword As String = "yourpassword"
            Dim MailSubject As String = "Form Results"

            Try
                Dim txtQ As TextBox = Me.FormContent.FindControl("TextBoxQ")
                If txtQ IsNot Nothing Then
                    Dim ans As String = ViewState("hf1")
                    If ans.ToLower <> txtQ.Text.ToLower Or ans.ToUpper <> txtQ.Text.ToUpper Then
                        Me.YourForm.ActiveViewIndex = 3
                        Exit Sub
                    End If
                End If

                Dim FromEmail As String = SendResultsTo
                Dim msgBody As StringBuilder = New StringBuilder()
                Dim sendCC As Boolean = False

            
                For Each c As Control In Me.FormContent.Controls
                    Select Case c.GetType.ToString
                        Case "System.Web.UI.WebControls.TextBox"
                            Dim txt As TextBox = CType(c, TextBox)
                            If txt.ID.ToLower <> "textboxq" Then
                                msgBody.Append(txt.ID & ": " & txt.Text & vbCrLf & vbCrLf)
                            End If
                            If txt.ID.ToLower = "email" Then
                                FromEmail = txt.Text
                            End If
                            If txt.ID.ToLower = "subject" Then
                                MailSubject = txt.Text
                            End If
                        Case "System.Web.UI.WebControls.CheckBox"
                            Dim chk As CheckBox = CType(c, CheckBox)
                            If chk.ID.ToLower = "checkboxcc" Then
                                If chk.Checked Then sendCC = True
                            Else
                                msgBody.Append(chk.ID & ": " & chk.Checked & vbCrLf & vbCrLf)
                            End If
                            
                        Case "System.Web.UI.WebControls.RadioButton"
                            Dim rad As RadioButton = CType(c, RadioButton)
                            msgBody.Append(rad.ID & ": " & rad.Checked & vbCrLf & vbCrLf)
                        Case "System.Web.UI.WebControls.DropDownList"
                            Dim ddl As DropDownList = CType(c, DropDownList)
                            msgBody.Append(ddl.ID & ": " & ddl.SelectedValue & vbCrLf & vbCrLf)
                    End Select
                Next
                msgBody.AppendLine()
                
                msgBody.Append("Browser: " & Request.UserAgent & vbCrLf & vbCrLf)
                msgBody.Append("IP Address: " & Request.UserHostAddress & vbCrLf & vbCrLf)
                msgBody.Append("Server Date & Time: " & DateTime.Now & vbCrLf & vbCrLf)

                Dim myMessage As System.Net.Mail.MailMessage = New System.Net.Mail.MailMessage()
                myMessage.To.Add(SendResultsTo)
                myMessage.From = New System.Net.Mail.MailAddress(FromEmail)
                myMessage.Subject = MailSubject
                myMessage.Body = msgBody.ToString
                myMessage.IsBodyHtml = False
                If sendCC Then myMessage.CC.Add(FromEmail)

                
                Dim basicAuthenticationInfo As New System.Net.NetworkCredential(smtpUsername, smtpPassword)
                Dim MailObj As New System.Net.Mail.SmtpClient(smtpMailServer)
                MailObj.Credentials = basicAuthenticationInfo
                MailObj.Send(myMessage)

                Me.YourForm.ActiveViewIndex = 1
            Catch
                Me.YourForm.ActiveViewIndex = 2
            End Try
        End Sub

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
            If Not Page.IsPostBack Then
                Dim lbl As Label = Me.FormContent.FindControl("labelq")
                If lbl IsNot Nothing Then
                    Dim rq(3) As String
                    rq(0) = "Is fire hot or cold?"
                    rq(1) = "Is ice hot or cold?"
                    rq(2) = "Is water wet or dry?"

                    Dim ra(3) As String
                    ra(0) = "hot"
                    ra(1) = "cold"
                    ra(2) = "wet"
                    
                    Dim rnd As New Random
                    Dim rn As Integer = rnd.Next(0, 3)
                    lbl.Text = rq(rn)
                    ViewState("hf1") = ra(rn)
                End If
            End If
        End Sub
    </script>
<html xmlns="http://www.w3.org/1999/xhtml">

<!-- #BeginTemplate "scouts.dwt" -->

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<!-- #BeginEditable "doctitle" -->
<title>Contact Us</title>
<!-- #EndEditable -->
<link href="scout.css" rel="stylesheet" type="text/css" />
<!-- #BeginEditable "headers" -->
<meta name="description" content="Boy Scout Troop ##" />
<style type="text/css">

.contact {
	margin: 1em 5em;
}
</style>
<!-- #EndEditable -->
</head>
<body>
<div id="container">
<div id="masthead">
	<img alt="Boy Scouts of America 100 year aniversary" height="123" 
	src="images/bsa-anniversary-bl.jpg" width="122" class="floatrt" /><h1>Boy Scout Troop ##</h1>
	<p>In Some District<br />
	Town, State</p>
</div>
<div id="menu">
	<ul>
		<li><a href="index.html">Home</a></li>
		<li><a href="calender.html">Calendar</a></li>
		<li><a href="merit-badges.html">Merit Badges</a></li>
		<li><a href="faqs.html">FAQs</a></li>
		<li><a href="definitions.html">Scout Terms</a></li>
		<li><a href="links.html">Links</a></li>
		<li><a href="contact.aspx">Contact Us</a></li>
	</ul>
</div>
<div id="content">
<!-- #BeginEditable "maincontent" -->
<form id="form1" runat="server">
        <div class="contact">
        <asp:MultiView ID="YourForm" runat="server" ActiveViewIndex="0">
            <asp:View ID="FormContent" runat="server">
                            <label for="First_Name">
                    First Name:<br />
                    <asp:TextBox ID="First_Name" runat="server" Columns="35"></asp:TextBox>
                </label>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="First_Name"
                    ErrorMessage="Please enter your first name." SetFocusOnError="True" CssClass="ValidateMessage"
                    ForeColor="">* Required</asp:RequiredFieldValidator>
                <br />
                        <label for="Last_Name">
                    Last Name:<br />
                    <asp:TextBox ID="Last_Name" runat="server" Columns="35">
                    </asp:TextBox>
                </label><br />
                     <label for="Email">
                    Enter your Email Address:<br />
                    <asp:TextBox ID="Email" runat="server" Columns="35">
                    </asp:TextBox>
                </label>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="Email"
                    Display="Dynamic" ErrorMessage="Please enter your email address." SetFocusOnError="True"
                    CssClass="ValidateMessage" ForeColor="">* Required</asp:RequiredFieldValidator>
                <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="Email"
                    ErrorMessage="Please enter a valid email address." SetFocusOnError="True" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
                    CssClass="ValidateMessage" ForeColor="">* Please enter a valid email address.</asp:RegularExpressionValidator>
                <br />
                        <label for="Subject">
                    Subject:<br />
                    <asp:TextBox ID="Subject" runat="server" Columns="50">
                    </asp:TextBox>
                </label>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="Subject"
                    ErrorMessage="Please enter a subject." SetFocusOnError="True" CssClass="ValidateMessage"
                    ForeColor="">* Required</asp:RequiredFieldValidator>
                                    <br />
                        <label for="Phone">
                    Phone Number:<br />
                    <asp:TextBox ID="Phone" runat="server" Columns="40">
                    </asp:TextBox>
                </label>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" ControlToValidate="Phone"
                    Display="Dynamic" ErrorMessage="Please enter your phone number." SetFocusOnError="True"
                    CssClass="ValidateMessage" ForeColor="">* Required</asp:RequiredFieldValidator>
                <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="Phone"
                    ErrorMessage="Please enter a valid U.S. phone number (including dashes)." SetFocusOnError="True"
                    ValidationExpression="((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}" CssClass="ValidateMessage"
                    ForeColor="">* Please enter a valid U.S. phone number (including dashes).</asp:RegularExpressionValidator>

                <br />
                        <label for="Message">
                    Please type your message below:
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="Message"
                        ErrorMessage="Please enter a message" SetFocusOnError="True" CssClass="ValidateMessage"
                        ForeColor="">* Required</asp:RequiredFieldValidator>
                    <br />
                    <asp:TextBox ID="Message" runat="server" TextMode="MultiLine" Columns="55" Rows="10">
                    </asp:TextBox>
                </label>
                              
                <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="Last_Name"
                    ErrorMessage="Please enter your last name." SetFocusOnError="True" CssClass="ValidateMessage"
                    ForeColor="">* Required</asp:RequiredFieldValidator>
                <p>
                        <label for="TextBoxQ">
                    Anti-Spam Question:
                    <asp:Label ID="LabelQ" runat="server"></asp:Label> 
                    <asp:TextBox ID="TextBoxQ" runat="server" Columns="8"></asp:TextBox>
                </label>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator12" runat="server" ControlToValidate="TextBoxQ"
                    Display="Dynamic" ErrorMessage="Please answer the anti-spam question." SetFocusOnError="True"
                    CssClass="ValidateMessage" ForeColor="">* Required</asp:RequiredFieldValidator>
                <br />
                        <asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="True"
                    ShowSummary="False" CssClass="ValidateMessage" ForeColor="" />
                <br />
                <asp:CheckBox ID="CheckBoxCC" runat="server" Text="Send me a carbon copy of this email." />
                <br />
                <asp:Button ID="SubmitForm" runat="server" OnClick="SubmitForm_Click" Text="Submit Form" />
                </p>
            </asp:View>
            <asp:View ID="FormConfirmationMessage" runat="server">
                Your message has been sent. Thank you for contacting us.<br />
            </asp:View>
            <asp:View ID="FormErrorMessage" runat="server">
                Due to technical difficulty, your message may NOT have been sent.
            </asp:View>
            <asp:View ID="FormSpamMessage" runat="server">
                You did not correctly answer the anti-spam question. Please go back and try again.</asp:View>
        </asp:MultiView>
        
		</div>
        
</form>
<!-- #EndEditable -->
</div>
<div id="footer">
<p>© 2010 by-expression.com</p>

</div>

</div>

</body>

<!-- #EndTemplate -->

</html>