日期:2014-05-18  浏览次数:20464 次

ASP.NET2.0发邮件出错
我用。NET自带的System.Net.Mail发邮件,在本地发送都好用,可是传到服务器上时,点发送确提示错误:
从客户端(ErrorMsg="发送邮件失败。<br>")中检测到有潜在危险的 Request.QueryString 值。

我的代码如下:
C# code

MailMessage mail = new MailMessage();
            mail.From = new MailAddress("andy.lf@163.com");
            mail.To.Add(new MailAddress("andy.lf@163.com"));
            mail.Subject = txttaskName.Text;
            mail.Body = "发送直告明细:<br><br>用户帐号:" + userName + "<br><br>时 间:" + txttaskTime.Text + "<br><br>直告属性:" + HiddenField1.Value+ "<br><br>发送数量:" + sendCount.Text + "<br><br>短信内容:" + txtSms.Text + "<br><br>体验号码:" + alertMdnStr.Text;
            mail.IsBodyHtml = true;
            SmtpClient client = new SmtpClient();
            client.Send(mail);



------解决方案--------------------
你这玩意和邮件发送无关,只是页面回传时,表单里面有了不应该出现的HTML代码。类似代码存在潜在危险,所以服务器端报错了。

在aspx页面第一行<%@ Page Language=“”>加入 ValidateRequest="false" 应该可以解决这个问题。

但你的邮件发送也存在问题。因为现在有些邮件服务器是拒绝接收匿名发信的。通俗的讲就是,想要正常发送,除邮件发送服务器端允许smtp外,还需要输入必须的发送人的邮件用户名和密码。像你这种情况十有八九邮件都会发送不成功的。
------解决方案--------------------
这个问题在VS2005里面经常出现的,解决办法,加上页面有颜色标识的一段就OK了:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="Team_index" [b]enableEventValidation="false"[/b] %>