質問

これは私のメール送信コードです。 「メールヘッダーに無効な文字があります」というメッセージが表示されました。エラー:コンピュータ名を最も短い名前に変更したとき。問題は解決しました。しかし、私のドメインでは、「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);
役に立ちましたか?

解決

これはエンコーディング関連の問題であると思われます。

new MailAddress(" xxxx@xxxx.domain"、" blab blalb&quot ;, Encoding.Default)コンストラクターを使用してみてください。

その他の Encoding.Unicode を試してください。

更新:

掘り下げた後、この例外は次からスローされます:

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

これは、メールアドレスに\ xffを超える文字がある場合に発生します。名前は既にエンコードされているはずなので、これは起こるとは思われませんが、何か他のものがおかしいと思います。

他のヒント

メッセージの送信に使用するヘッダーは何ですか?

このMSDNスニペットで簡単にダンプできます:

string[] keys = message.Headers.AllKeys;
        Console.WriteLine("Headers");
        foreach (string s in keys)
        {
            Console.WriteLine("{0}:", s);
            Console.WriteLine("    {0}", message.Headers[s]);

これを「ネットワーク」に変更すると、このエラーを受け取りました。 ---エラーが解決されました。 (私の理解は-指定されたピックアップディレクトリオプションの場合、ヘッダー-encoding utf-8(base64)はエラーを与えていました)

希望する

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top