Za pomocą klas SmtpClient
, MailMessage
i MailAddress
, nie mogę wysyłać na adresy e-mail, takie jak å[email protected] Pojawi się błąd/wyjątki, jak pokazano poniżej:Nie można wysyłać wiadomości e-mail na adresy ze skandynawskimi znakami
W nagłówku wiadomości znaleziono nieprawidłowy znak: "å".
--------------------------- Błąd podczas wysyłania wiadomości e-mail --------------- ------------ System.Net.Mail.SmtpException: Klient lub serwer jest skonfigurowany tylko dla adresów e-mail z ASCII lokalnych części: å[email protected]
w System.Net.Mail.MailAddress.GetUser (logiczna allowUnicode)
w System.Net.Mail.MailAddress.GetAddress (logiczna allowUnicode)
w System.Net.Mail.MailAddress.Encode (Int32 charsConsumed, logiczna allowUnicode)
w System.Net.Mail.MailAddressCollection.Encode (Int32 charsConsumed, logiczna allowUnicode) w System.Net.Mail.Message.PrepareHeaders (logiczna sendEnvelope, logiczna allowUnicode) na System.Net.Mail.Message.Send (BaseWriter pisarza, Boolean sendEnvelope, Boolean allowUnicode) na System.Net.Mail.SmtpClient.Send (komunikat MailMessage)
te znaki w moim ciele przedmiotu/są w porządku, ale nie w adresach e-mail.
Próbowałem ustawić SmtpClient.DeliveryMethod = SmtpDeliveryFormat.International
lub MailMessage.HeadersEncoding = Encoding.Unicode
(lub UTF8
) i wydaje się, że nic nie zmienia. To są prawdziwe adresy e-mail osób, z którymi musimy się komunikować, więc to trochę problem.
Przeszukałem kod źródłowy .Net, ale nigdzie go nie dostałem. Wyszukałem właściwość ServerSupportsEai
, a Google mówi mi, że EAI oznacza internacjonalizację adresów e-mail (https://tools.ietf.org/html/rfc5336), ale jest dość niejasne, czy jest to ograniczenie w moim kodzie, czy też serwer, z którym rozmawiam, po prostu nie obsługuje tego. .. ponieważ używam serwera testowego, aby uniknąć wysyłania e-maili do niczego nie podejrzewających Szwedów!
Czy ktoś może mi pomóc to wyjaśnić - czy .Net obsługuje to, jeśli tak, to cokolwiek powinien zrobić mój kod klienta, aby go włączyć?
Myślę, że problem może nie być w kodzie .NET, ale w konfiguracji serwera poczty e-mail. Czy możesz spróbować użyć innego serwera? – Pikoh
(5336 jest zastąpiony przez 6531/2) Ta funkcja wymaga serwera SMTP do obsługi SMTPUTF8, spróbuj z Gmailem, który działa, jeśli działa na twoim serwerze, to jest problem. –
Dzięki. Po walce z Gmailem "aplikacja nie używa aktualnych zabezpieczeń i została zablokowana" testuję to - choć nadal nie mogę wysłać do prawdziwej osoby bardzo grzecznie –