我创建了一个表格供客户从网站请求信息。然后表单使用 Webmail.Send 向我发送一封电子邮件。如果用户尝试输入部分或全部 html 开始标记,即“<h1”或“<h1>”,站点将抛出错误。我使用 WebMatrix 开发了该站点,并尝试使用 Html.Encode() 解决此问题。如果我在 Html.Encode("<h1>") 中硬编码,一切都很好,电子邮件已发送并且 html 标记在电子邮件中看起来很棒。如果我尝试使用变量 Html.Encode(firstName),如果用户输入部分或全部 html 开始标记,则站点会崩溃。如果用户输入的内容看起来不像 html,那么一切都很好,即“Steve”。以下是我遇到问题的代码。
var customerEmail = Request["customerEmail"];
var firstName = Request["firstName"];
var lastName = Request["lastName"];
var phoneNumber = Request["phoneNumber"];
var customerRequest = Request["customerRequest"];
var rAddress = Request["rAddress"];
var rCity = Request["rCity"];
var rState = Request["rState"];
var rZip = Request["rZip"];
try
{
WebMail.Send(to:"request@yourdomain.com", subject: "Request from " + customerEmail, body:
"Request:<br>_____________________________________<br><br>" +
customerRequest + "<br><br>Contact Info:<br>_____________________________________<br><br>" + Html.Encode(firstName) + " " + lastName + "<br>" + rAddress +
"<br>" + rCity + " " + rState + " " + rZip + "<br>" + phoneNumber + "<br>" + customerEmail, replyTo: customerEmail);
}
catch (Exception ex )
{
<text>@ex</text>
}
我知道所有输入都可能出现问题,但是一旦我弄清楚第一个输入,这将很容易解决。