System.Net.Mail C#でメールを送信中の問題
-
03-07-2019 - |
質問
これは私のメール送信コードです。 「メールヘッダーに無効な文字があります」というメッセージが表示されました。エラー:コンピュータ名を最も短い名前に変更したとき。問題は解決しました。しかし、私のドメインでは、「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)はエラーを与えていました)
希望する
所属していません StackOverflow