#c# #smtpclient #mailmessage
#c# #smtpclient #mailmessage
Вопрос:
Проблема: я получаю «???????» вместо отображаемого имени отправителя (отображаемое имя — текст utf8, также пробовал использовать System.Web.Mail.MailMessage, но получил тот же результат):
var fromAddress = new MailAddress("from@mail.com", "Some UTF8 text");
var toAddress = new MailAddress(toAddress);
var client = new SmtpClient
{
Host = "smpt.server",
Port = 465,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, "password"),
Timeout = 5000
};
var message = new MailMessage(fromAddress, toAddress)
{
Subject = title,
Body = messageStr,
IsBodyHtml = true
};
Комментарии:
1. Откуда вы получаете отображаемое имя? Поскольку вы знаете, что это UTF8, вы можете попытаться преобразовать его в юникод.
2. Поддерживает ли ваш SMTP-сервер Unicode? Класс MailAddress выполняет, согласно документации.
3. Я заметил странную вещь: когда я использую CDO.Message, перед отправкой электронной почты я попытался проверить адрес отправителя с помощью QuickWatch и увидел «»???? ?????????» <office@portal.ua >»
Ответ №1:
Вы пробовали менять конструктор?
var fromAddress = new MailAddress("from@mail.com", "Some UTF8 text", System.Text.Encoding.UTF8);
Комментарии:
1. С той же страницы: «UTF8 является кодировкой по умолчанию, если не указано ни одно» .