3

á、é、ó、í、ú などの特殊文字を含むメールを送信しようとしています。コードは次のようになります。

try
{
   Mail message = Mail.GetInstance();
   foreach (Users u in users)
   {
       message.AddBcc(u.Email);
   }
   message.From = new MailAddress(Microsoft.WindowsAzure.CloudConfigurationManager
       .GetSetting("emailFrom"), Microsoft.WindowsAzure.CloudConfigurationManager
       .GetSetting("emailFromName"));
   message.Subject = Microsoft.WindowsAzure.CloudConfigurationManager
       .GetSetting("emailSubject");

   message.Html = "<meta charset=\"UTF-8\"/>" + 
       Microsoft.WindowsAzure.CloudConfigurationManager.GetSetting("emailText1") + 
       " " + address+ ".<br/>" + 
       Microsoft.WindowsAzure.CloudConfigurationManager.GetSetting("emailText2");

   var transport = SMTP.GetInstance(new NetworkCredential(
       Microsoft.WindowsAzure.CloudConfigurationManager.GetSetting("emailLogin"), 
       Microsoft.WindowsAzure.CloudConfigurationManager.GetSetting("emailPass")));
   transport.Deliver(message);
   isEmailSent = true;
}
catch (Exception ex)
{
    Debug.WriteLine(ex.Message + " \n " + ex.InnerException + " \n " + ex.StackTrace);
    isEmailSent = false;
}

送信する Html で charset を指定しようとしましたが、 this を送信する代わりにSan Jerónimo Amanal、これが送信されているものですSan Jerónimo Amanal

正しいエンコーディングで送信するにはどうすればよいですか? どんな助けでも大歓迎です。

編集

私はこの2つのアプローチを試しました:

   message.Html = "<meta charset=\"UTF-8\"/>" + 
       Microsoft.WindowsAzure.CloudConfigurationManager.GetSetting("emailText1") + 
       " " + address+ ".<br/>" + 
       Microsoft.WindowsAzure.CloudConfigurationManager.GetSetting("emailText2");

この:

   message.Html = Microsoft.WindowsAzure.CloudConfigurationManager.GetSetting
       ("emailText1") + " " + address+ ".<br/>" + 
       Microsoft.WindowsAzure.CloudConfigurationManager.GetSetting("emailText2");

しかし、メールはまだ間違ったエンコーディングで送信されています。

編集2

Converting Unicode strings to escaped ascii stringというこの質問の答えを試しEncodeNonAsciiCharactersましたSan Jer\u00c3\u00b3nimo Amanal。私はこれで間違ったアプローチを取りましたか?

4

2 に答える 2