#c_sharp #aspnet_mvc
Для рассылки почты использовал достаточно простой метод отправки. public bool SendEmail(string UserName, string UserPassword, string emailTo, string subject, string body, bool isBodyHtml) { if (string.IsNullOrEmpty(emailTo)) { return false; } using (System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient(SERVERSMTP, PORTNOSMTP)) { smtpClient.EnableSsl = false; smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = new NetworkCredential(UserName, UserPassword); using (MailMessage message = new MailMessage()) { message.From = new MailAddress(UserName); message.Subject = subject == null ? "" : subject; message.Body = body == null ? "" : body; message.IsBodyHtml = isBodyHtml; message.To.Add(new MailAddress(emailTo)); try { smtpClient.Send(message); return true; } catch (Exception exception) { //string s1 = exception.Message + "\n" + exception.InnerException + "\n" + exception.Data; throw new FaultException(exception.Message); } } } } Всё отлично работает. Но необходимо отправлять почту с .рф домена и тут возникла проблема. Не возможно отправить, выдает ошибку System.Net.WebException: Невозможно разрешить удаленное имя "мойсайт.рф" пробовал добавить в код smtpClient.DeliveryFormat = SmtpDeliveryFormat.International; тоже не помогло, как быть? где это разрешается? Читал про:Но не могу понять как это в моём случае использовать?
Ответы
Ответ 1
Вам нужно сконвертировать домен в Punycode. using System.Globalization; string unicode = @"россия.рф"; IdnMapping mapping = new IdnMapping(); string ascii = mapping.GetAscii(unicode); Console.WriteLine(ascii); string convertedBackToUnicode = mapping.GetUnicode(ascii); Console.WriteLine(convertedBackToUnicode);
Комментариев нет:
Отправить комментарий