3

这是我的邮件发送代码。我收到“邮件标题中有无效字符”错误。当我更改我的计算机名称时,一些最短的名称。问题解决了。但是在我的域中,整个计算机名称都像“04500-ab04545.xxxdomain.gov.tr”,所以我需要为这个问题找到另一个解决方案。

因此,从 c# 代码发送邮件时,我无法提供静态计算机名称。

 MailMessage msg = new MailMessage();
 msg.Body = "axxxxxx";
 msg.To.Add(new MailAddress("xxxx@xxxx.domain"));
 msg.From = new MailAddress("xxxx@xxxx.domain","blab blalb");
 msg.Subject = "Subject xxx";
 SmtpClient server = new SmtpClient("xxxxxxxx",25);
 server.Credentials = new NetworkCredential("xxxxx", "xxxxxxx");
 SmtpClient server = new SmtpClient("mail.adalet.gov.tr",25);
 server.Credentials = new NetworkCredential("xxx", "xxx");
 server.Send(msg);
4

3 回答 3

4

我怀疑这可能是与编码相关的问题。

尝试使用new MailAddress("xxxx@xxxx.domain","blab blalb", Encoding.Default)构造函数。

其他尝试Encoding.Unicode

更新:

经过一番挖掘,此异常从以下位置抛出:

void System.Net.BufferBuilder.Append(string,int,int);

如果您的电子邮件地址中有任何高于 \xff 的字符,就会发生这种情况。这不应该发生,因为名称应该已经被编码,但我猜其他的东西会很有趣。

于 2009-03-03T20:25:23.263 回答
0

消息试图发送的标题是什么?

您可以使用此 MSDN 片段轻松转储:

string[] keys = message.Headers.AllKeys;
        Console.WriteLine("Headers");
        foreach (string s in keys)
        {
            Console.WriteLine("{0}:", s);
            Console.WriteLine("    {0}", message.Headers[s]);
于 2009-03-03T20:22:47.420 回答
0

如果将其修改为“网络”,我会收到此错误 --- 然后错误得到解决。(我的理解是 - 如果指定pickingdirectory 选项,标头-encoding utf-8 (base64) 给出错误)

希望能帮助到你

于 2014-08-20T13:53:31.563 回答