";
mail.Body += Server.HtmlEncode(txtMessage.Text).Replace(Environment.NewLine, "
";
mail.Body += "_______________________________________________________________________________
";
mail.Body += "
Name: " + Server.HtmlEncode(txtName.Text) + "
";
mail.Body += "
E-mail: " + Server.HtmlEncode(txtEmail.Text) + "
";
if (ViewState["url"] != null)
mail.Body += string.Format("
Website: {0}", ViewState["url"]);
if (ViewState["country"] != null)
mail.Body += "
Country code: " + ((string)ViewState["country"]).ToUpperInvariant() + "
";
if (HttpContext.Current != null)
{
mail.Body += "
IP address: " + HttpContext.Current.Request.UserHostAddress + "
";
mail.Body += "
User-agent: " + HttpContext.Current.Request.UserAgent;
}
if (txtAttachment.HasFile)
{
Attachment attachment = new Attachment(txtAttachment.PostedFile.InputStream, txtAttachment.FileName);
mail.Attachments.Add(attachment);
}
Utils.SendMailMessage(mail);
}
return true;
}
catch (Exception ex)
{
if (User.Identity.IsAuthenticated)
{
if (ex.InnerException != null)
lblStatus.Text = ex.InnerException.Message;
else
lblStatus.Text = ex.Message;
}
return false;
}
}
#region Cookies
///
/// Gets the cookie with visitor information if any is set.
/// Then fills the contact information fields in the form.
///
private void GetCookie()
{
HttpCookie cookie = Request.Cookies["comment"];
if (cookie != null)
{
txtName.Text = Server.UrlDecode(cookie.Values["name"]);
txtEmail.Text = cookie.Values["email"];
ViewState["url"] = cookie.Values["url"];
ViewState["country"] = cookie.Values["country"];
}
}
///
/// Sets a cookie with the entered visitor information
/// so it can be prefilled on next visit.
///
private void SetCookie()
{
HttpCookie cookie = new HttpCookie("comment");
cookie.Expires = DateTime.Now.AddMonths(24);
cookie.Values.Add("name", Server.UrlEncode(txtName.Text));
cookie.Values.Add("email", txtEmail.Text);
cookie.Values.Add("url", string.Empty);
cookie.Values.Add("country", string.Empty);
Response.Cookies.Add(cookie);
}
#endregion
#region CAPTCHA
///
/// Initializes the captcha and registers the JavaScript
///
private void InititializeCaptcha()
{
if (ViewState["captchavalue"] == null)
{
ViewState["captchavalue"] = Guid.NewGuid().ToString();
}
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.AppendLine("function SetCaptcha(){");
sb.AppendLine("var form = document.getElementById('" + Page.Form.ClientID + "');");
sb.AppendLine("var el = document.createElement('input');");
sb.AppendLine("el.type = 'hidden';");
sb.AppendLine("el.name = 'captcha';");
sb.AppendLine("el.value = '" + ViewState["captchavalue"] + "';");
sb.AppendLine("form.appendChild(el);}");
Page.ClientScript.RegisterClientScriptBlock(GetType(), "captchascript", sb.ToString(), true);
Page.ClientScript.RegisterOnSubmitStatement(GetType(), "captchayo", "SetCaptcha()");
}
///
/// Gets whether or not the user is human
///
private bool IsCaptchaValid
{
get
{
if (ViewState["captchavalue"] != null)
{
return Request.Form["captcha"] == ViewState["captchavalue"].ToString();
}
return false;
}
}
#endregion
}