none
System.Net.Mail.MailAddress的displayName如果有8个汉字,指定编码用GB2312就会抛异常? RRS feed

  • 问题

  • 如 MailAddress from = new MailAddress("xx@xx.com",   "啊啊啊啊啊啊啊啊", System.Text.Encoding.Default);

    .Net FrameWork 2.0

    2010年5月12日 8:04

答案

  • 不好意思,发帖的时候偷懒用了Default,用g("gb2312"))结果是一样的

                try
                {
                    System.Net.Mail.MailAddress from = new MailAddress("xx@xx.com", "一二三四五六七八", System.Text.Encoding.GetEncoding("gb2312"));
                    System.Net.Mail.MailAddress to = new MailAddress("xx@xx.com");
                    System.Net.Mail.MailMessage message = new MailMessage(from, to);
                    System.Net.Mail.SmtpClient client = new SmtpClient("mail.xx.com", 25);
                    client.Send(message);
                }
                catch (Exception e)
                {
                    System.Diagnostics.Debug.WriteLine(e.ToString());
                }

    System.Net.Mail.SmtpException: 事务失败。 服务器响应为: closing open relay.
       在 System.Net.Mail.DataStopCommand.CheckResponse(SmtpStatusCode statusCode, String serverResponse)
       在 System.Net.Mail.DataStopCommand.Send(SmtpConnection conn)
       在 System.Net.Mail.SmtpConnection.OnClose(Object sender, EventArgs args)
       在 System.Net.ClosableStream.Close()
       在 System.Net.Mail.MailWriter.Close()
       在 System.Net.Mail.SmtpClient.Send(MailMessage message)

    后来换了个邮箱成功了,看来是邮箱服务器的问题,不知道应该怎么设置。用的邮箱服务器是WebEasyMail

    2010年5月13日 1:42

全部回复

  • System.Text.Encoding.Default 未必是 GB2312 啊
    2010年5月12日 9:20
  • 你好!

         这样试试看:

         MailAddress from = new MailAddress("xx@xx.com",   "啊啊啊啊啊啊啊啊", System.Text.Encoding.GetEncoding("gb2312"));


    周雪峰
    2010年5月12日 15:04
    版主
  • System.Text.Encoding.Default 未必是 GB2312 啊


    ANSI 指定的 一般簡體中文的就是GB2312 當然也不一定是

    樓主可以按照學風的方法試試  是不會出錯的哦


    I see you~http://hi.baidu.com/1987raymondMy Blog~~~
    2010年5月13日 1:15
    版主
  • 不好意思,发帖的时候偷懒用了Default,用g("gb2312"))结果是一样的

                try
                {
                    System.Net.Mail.MailAddress from = new MailAddress("xx@xx.com", "一二三四五六七八", System.Text.Encoding.GetEncoding("gb2312"));
                    System.Net.Mail.MailAddress to = new MailAddress("xx@xx.com");
                    System.Net.Mail.MailMessage message = new MailMessage(from, to);
                    System.Net.Mail.SmtpClient client = new SmtpClient("mail.xx.com", 25);
                    client.Send(message);
                }
                catch (Exception e)
                {
                    System.Diagnostics.Debug.WriteLine(e.ToString());
                }

    System.Net.Mail.SmtpException: 事务失败。 服务器响应为: closing open relay.
       在 System.Net.Mail.DataStopCommand.CheckResponse(SmtpStatusCode statusCode, String serverResponse)
       在 System.Net.Mail.DataStopCommand.Send(SmtpConnection conn)
       在 System.Net.Mail.SmtpConnection.OnClose(Object sender, EventArgs args)
       在 System.Net.ClosableStream.Close()
       在 System.Net.Mail.MailWriter.Close()
       在 System.Net.Mail.SmtpClient.Send(MailMessage message)

    后来换了个邮箱成功了,看来是邮箱服务器的问题,不知道应该怎么设置。用的邮箱服务器是WebEasyMail

    2010年5月13日 1:42