代码如下:
        public Email()
        {
            //
            //TODO: 在此处添加构造函数逻辑
            //            From = "[email protected]";
            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]

解决方案 »

  1.   

    mm.IsBodyHtml = true; 
      

  2.   

    说的蛮清楚的,用户代码未处理 System.Net.Mail.SmtpException,楼主单点调试下看看
      

  3.   

    是不是你的主机地址有问题。SMTP 和 POP3
      

  4.   

    InnerException: System.FormatException
           Message="在头值中找到无效的字符。"这个是真正的错误吧。
      

  5.   

    估计是编码问题,或者是无效字符。你可以用web页面发邮件,中文标题,收到邮件看Orignal Message(Gmail支持),看看用什么Encoding 进行编码的。看看这里的讨论:
    在邮件标头中找到无效的字符 
    http://bbs.csdn.net/topics/210059564尤其是14, 20, 23, 24, 27, 31楼。
      

  6.   

    CodePage 936,应该就是GB2312,感觉应该支持才对。先看看11楼连接里的讨论吧。