【发布时间】:2014-02-08 00:12:39
【问题描述】:
我正在使用这些配置:
WebMail.SmtpServer = "smtp.gmail.com";
WebMail.EnableSsl = true;
WebMail.SmtpPort = 587;
WebMail.UserName = "name";
WebMail.Password = "pass";
WebMail.From = "fromaddres";
发送带有超链接的确认电子邮件会返回一个 HttpRequestValidationException。
我尝试使用 WebMail.Send() 方法制作测试邮件页面。那里的一些代码:
try{
if(IsPost){
WebMail.Send(
to: Request.Form["emailAddress"],
subject: Request.Form["emailSubject"],
body: Request.Form["emailBody"],
isBodyHtml: true
);
message = "Email sent!";
}
}catch(HttpRequestValidationException){
}catch(Exception ex){
message = "Email could not be send! Error: "+ex.Message;
}
如果我在“emailBody”中输入纯文本。电子邮件已正确发送。
但是,如果我在输入文本中的某处写任何 html 标签,例如超链接或段落,它返回相同的异常并说“emailBody”输入内容可能具有潜在危险。
有人可以说我做错了什么或如何解决这个问题吗?
编辑:
解决方案是将“isBodyHtml”参数设置为 false。
删除“emailBody”中的所有 html 标签,只用 url
写纯文本
(例如“嗨,访问这个网站:www.google.com”)
在收到的电子邮件中,我有一个带有所需网站链接的文本。
无论如何发送<a> 链接会很有用。
【问题讨论】:
标签: c# asp.net razor asp.net-webpages