Convertire dominio non-ascii a SMTP compatibile
-
22-09-2019 - |
Domanda
Quando i clienti entrano indirizzi e-mail con caratteri non-ASCII come AUO nostro SMTP rifiuta di elaborarli.
Quindi penso che potrebbe essere ci sia una soluzione per gestire tali domini me stesso e convertirli in punyocode.
C'è un modo semplice di farlo utilizzando c #?
Sarebbe questo lavoro in ogni caso?
Soluzione
È possibile utilizzare Uri.DnsSafeHost
convertire in 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;
}
}
In app.config:
<configuration>
<uri>
<idn enabled="All" />
</uri>
</configuration>
Risultato:
xn--caf-dma.com
Altri suggerimenti
Il problema di questo approccio è che sarete in cambiando gli indirizzi e-mail.
L'indirizzi e-mail e bevan@example.com
bevän@example.com
sono diverso indirizzi e-mail, per quanto essi appaiono lo stesso.
Fare il cambiamento suggerisci sarà rompere e-mail -. Persone potrebbero ricevere i messaggi, ma non saranno in grado di rispondere alle loro
Il server SMTP che non gestisce i caratteri accentati suona come un dinosauro. Molto come potrebbe essere un dolore nel proverbiale, la sostituzione e / o l'aggiornamento è probabile che la soluzione migliore.
È probabile che in grado di ottenere l'assistenza più appropriata sopra su ServerFault .