3

顧客がäüöのようなASCII以外の文字を使用して電子メールアドレスを入力すると、SMTPはそれらの処理を拒否します。

したがって、これらのドメインを自分で処理し、それらをpunyocodeに変換するソリューションがあるかもしれないと思います。

c#を使用してこれを行う簡単な方法はありますか?

これはとにかく機能しますか?

4

2 に答える 2

8

Uri.DnsSafeHostPunycodeへの変換に使用できます。

using System;

class Test
{
    static void Main()
    {
        Console.WriteLine(ConvertToPunycode("caf\u00e9.com"));
    }

    static string ConvertToPunycode(string domain)
    {
        Uri uri = new Uri("http://"+domain);
        return uri.DnsSafeHost;
    }
}

app.configの場合:

<configuration>
  <uri>
    <idn enabled="All" />
  </uri>
</configuration>

結果:

xn--caf-dma.com
于 2009-10-20T06:10:31.680 に答える
0

このアプローチの問題は、電子メールアドレスを変更することです。

電子メールアドレスbevan@example.combevän@example.com異なる電子メールアドレスですが、ほとんど同じように見えます。

あなたが提案する変更を加えると、電子メールが壊れます-人々はメッセージを受け取るかもしれませんが、彼らはそれらに返信することができません。

アクセント付き文字を処理しないSMTPサーバーは、恐竜のように聞こえます。ことわざの痛みかもしれませんが、交換やアップグレードが最善の解決策である可能性があります。

ServerFaultでより適切な支援を受けることができるでしょう。

于 2009-10-20T05:57:52.573 に答える