SmtpClient Текстовая версия письма только отсутствует апостроф - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь отправить электронное письмо через SmtpClient.

Только в части полученного электронного письма пропущены все апострофы.

Например, следующий текст (на французском языке) ):

Добрый день, административный сотрудник организации по проверке прав и возможностей.

Получен как

Добрый день, я отвечаю за организацию организации работы с платформой.

У меня проблема только с ASP. Net, результат хорош в . NET Консольное приложение Core 3.1 .

Что может быть источником этой проблемы?

Любая помощь приветствуется.

РЕДАКТИРОВАТЬ: Вот код

using (var smtpClient = new SmtpClient
{
          Host = @"smtp.myhost.net",
})
            {
string body = @"Bonjour, l’administrateur de votre organisation a validé votre demande d’accès à la plateforme.";
await smtpClient.SendMailAsync(
                            "noreply@mydomain.com",
                            @"dest@domain.fr",
                            string.Empty,
                            body)
                            .ConfigureAwait(continueOnCapturedContext: false);
            }

РЕДАКТИРОВАТЬ: Проблема решена путем замены апострофов на версии ASCII.

1 Ответ

0 голосов
/ 14 февраля 2020

Попробуйте использовать другую перегруженную функцию SendMailAsync(System.Net.Mail.MailMessage message), в которой вы можете определить encoding как System.Text.Encoding.UTF8 для своего почтового сообщения.

MailAddress to = new MailAddress("dest@domain.fr");
MailAddress from = new MailAddress("noreply@mydomain.com");
MailMessage message = new MailMessage(from, to);
message.Body = @"Bonjour, l’administrateur de votre organisation 
                    a validé votre demande d’accès à la plateforme.";
message.BodyEncoding =  System.Text.Encoding.UTF8;
message.Subject = "some text";
message.SubjectEncoding = System.Text.Encoding.UTF8;

Тогда SendMailAsync будет выглядеть так:

await smtpClient.SendMailAsync(message)
      .ConfigureAwait(continueOnCapturedContext: false);
...