顧客がäüöのようなASCII以外の文字を使用して電子メールアドレスを入力すると、SMTPはそれらの処理を拒否します。
したがって、これらのドメインを自分で処理し、それらをpunyocodeに変換するソリューションがあるかもしれないと思います。
c#を使用してこれを行う簡単な方法はありますか?
これはとにかく機能しますか?
顧客がäüöのようなASCII以外の文字を使用して電子メールアドレスを入力すると、SMTPはそれらの処理を拒否します。
したがって、これらのドメインを自分で処理し、それらをpunyocodeに変換するソリューションがあるかもしれないと思います。
c#を使用してこれを行う簡単な方法はありますか?
これはとにかく機能しますか?
Uri.DnsSafeHost
Punycodeへの変換に使用できます。
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
このアプローチの問題は、電子メールアドレスを変更することです。
電子メールアドレスbevan@example.com
とbevän@example.com
は異なる電子メールアドレスですが、ほとんど同じように見えます。
あなたが提案する変更を加えると、電子メールが壊れます-人々はメッセージを受け取るかもしれませんが、彼らはそれらに返信することができません。
アクセント付き文字を処理しないSMTPサーバーは、恐竜のように聞こえます。ことわざの痛みかもしれませんが、交換やアップグレードが最善の解決策である可能性があります。
ServerFaultでより適切な支援を受けることができるでしょう。