asp.net发送邮件失败,求解

EllieJFJ 2012-11-06 09:55:04
代码如下:
public Email()
{
//
//TODO: 在此处添加构造函数逻辑
//

From = "XXXXX@126.com";
Password = "123456";
Title = "标题";
SmtpStr = "smtp.126.com";
Port = 25;
}

private string From; //邮件帐号
private string Password; //邮件密码
private string Title; //发送标题
private string SmtpStr;
private int Port;

public string To; //接收者邮箱
public string Body; //发送邮件内容

public void EmailSend()
{
SmtpClient smtp = new SmtpClient();
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.EnableSsl = false;
smtp.Host = SmtpStr;
smtp.Port = Port;
smtp.UseDefaultCredentials = true;
smtp.Credentials = new NetworkCredential(From, Password);
MailMessage mm = new MailMessage();
mm.Priority = MailPriority.High;

mm.From = new MailAddress(From, Title, Encoding.GetEncoding(936));

foreach (string item in To.Split(','))
{
mm.CC.Add(new MailAddress(item, From, Encoding.GetEncoding(936)));
}
mm.Subject = Title;//"邮件标题";
mm.SubjectEncoding = Encoding.GetEncoding(936);
//936是简体中文的pagecode,如果是英文标题,这句可以忽略不用
mm.IsBodyHtml = true;
mm.BodyEncoding = Encoding.GetEncoding(936);
mm.Body = Body;
smtp.Send(mm);

}



获取的异常信息是:

用户代码未处理 System.Net.Mail.SmtpException
Message="发送邮件失败。"
Source="System"
StackTrace:
在 System.Net.Mail.SmtpClient.Send(MailMessage message)
在 Tec.Com.Email.EmailSend() 位置 D:\WorkSpaces\考勤系统\Attendance\Tec.Com\Email.cs:行号 116
在 Tec.BLL.Email.sendEmail(Int32 type, UserInfo user) 位置 D:\WorkSpaces\考勤系统\Attendance\Tec.BLL\Email.cs:行号 48
在 fillForm_addleaveForm.ButtonSubmit_Click(Object sender, EventArgs e) 位置 d:\WorkSpaces\考勤系统\Attendance\WebSite\fillForm\addLeaveForm.aspx.cs:行号 332
在 System.Web.UI.WebControls.Button.OnClick(EventArgs e)
在 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException: System.FormatException
Message="在头值中找到无效的字符。"
Source="System"
StackTrace:
在 System.Net.Mime.HeaderCollection.Set(String name, String value)
在 System.Net.Mail.Message.PrepareHeaders(Boolean sendEnvelope)
在 System.Net.Mail.Message.Send(BaseWriter writer, Boolean sendEnvelope)
在 System.Net.Mail.SmtpClient.Send(MailMessage message)
InnerException:
[code=csharp]
[/code]
...全文
491 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wpf1523 2012-11-07
  • 打赏
  • 举报
回复
我之前遇到过同样的问题,查了半天原来是电脑名字里含有中文,我用的XP系统,结果把电脑名字改了就发送出去了
宝_爸 2012-11-07
  • 打赏
  • 举报
回复
CodePage 936,应该就是GB2312,感觉应该支持才对。先看看11楼连接里的讨论吧。
宝_爸 2012-11-07
  • 打赏
  • 举报
回复
估计是编码问题,或者是无效字符。你可以用web页面发邮件,中文标题,收到邮件看Orignal Message(Gmail支持),看看用什么Encoding 进行编码的。 看看这里的讨论: 在邮件标头中找到无效的字符 http://bbs.csdn.net/topics/210059564 尤其是14, 20, 23, 24, 27, 31楼。
宝_爸 2012-11-07
  • 打赏
  • 举报
回复
InnerException: System.FormatException Message="在头值中找到无效的字符。" 这个是真正的错误吧。
宝_爸 2012-11-07
  • 打赏
  • 举报
回复
引用 13 楼 wpf1523 的回复:
我之前遇到过同样的问题,查了半天原来是电脑名字里含有中文,我用的XP系统,结果把电脑名字改了就发送出去了
呵呵,还有这么奇怪的问题。好在我们都是英文操作系统。
net5354 2012-11-06
  • 打赏
  • 举报
回复
免费的 只有QQ的SMTP可用
EllieJFJ 2012-11-06
  • 打赏
  • 举报
回复
引用 2 楼 qiujialongjjj 的回复:
说的蛮清楚的,用户代码未处理 System.Net.Mail.SmtpException,楼主单点调试下看看
如果不调试的话,邮件是发了出去的,调试的话邮件就没有发出去,。。
EllieJFJ 2012-11-06
  • 打赏
  • 举报
回复
用断点逐步查看里面的参数都发现问题啊...不知道是哪个参数不对
风一样的大叔 2012-11-06
  • 打赏
  • 举报
回复
说的蛮清楚的,用户代码未处理 System.Net.Mail.SmtpException,楼主单点调试下看看
csdnfan 2012-11-06
  • 打赏
  • 举报
回复
mm.IsBodyHtml = true;
小土bibox 2012-11-06
  • 打赏
  • 举报
回复
是不是引用的问题
XBodhi. 2012-11-06
  • 打赏
  • 举报
回复
是不是你的主机地址有问题。 SMTP 和 POP3
风一样的大叔 2012-11-06
  • 打赏
  • 举报
回复
应该是一个公用的出错了,不然怎么会同时在好几个页面报错

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧