2016-03-22 4 views
1

Я использую Microsoft EWS (веб-службы Exchange) для отправки электронной почты внешним клиентам (в отношении вызовов поддержки).Управление кодировкой сообщений при отправке электронной почты с использованием EWS API

Один из наших клиентов пытается автоматически импортировать тело сообщения электронной почты в свою собственную систему поддержки вызова (который JAVA на основе я думаю), и они продолжают получать это исключение:

Неподдерживаемое Кодирование Исключение: изо-8859 -10

поэтому они попросили меня, чтобы изменить его в UTF8

Если я пошлю им электронную почту от моего внешнего вида (который является клиентом того же биржи) он работает отлично. Это происходит только при отправке через EWS.

Вот мой код:

protected void SendEmail2(string recipientsAddresses, string senderAddress, string ccRecipients, string subject, string body, bool CCToSender, bool simulate, Importance messageImportance) 
    { 
     ExchangeService service = null; 
     EmailMessage message = null; 

     try 
     { 
      // initialize a proxy to the exchange web services 
      service = new ExchangeService(MAGMA_EXCHAGE_VERSION); 
      service.Url = new Uri(MAGMA_EWS_URI); 

      // create the message 
      message = new EmailMessage(service); 

      // Add recipients 
      foreach (string recipientEmail in recipientsAddresses.Split(";".ToCharArray())) 
      { 
       message.ToRecipients.Add(new EmailAddress(recipientEmail)); 
      } 

      // handle inline images 
      body = AddInlineImages(message, body); 

      // set everything 
      message.From = new EmailAddress(senderAddress); 
      message.Subject = subject; 
      message.Body = new MessageBody(BodyType.HTML, body); 
      message.Importance = messageImportance; 

      // and send 
      message.Save(); 
      FolderId SentFolderForUser = new FolderId(WellKnownFolderName.SentItems, senderAddress); 
      message.SendAndSaveCopy(SentFolderForUser); 
     } 
     catch (Exception) 
     { 
      throw; 
     } 
    } 

Строка, я перехожу в "тело" является HTML, который содержит:

мета кодировок = "UTF-8" тег под заголовком ,

Есть ли что-нибудь, что мне здесь не хватает?

Спасибо, Gil.

ответ

0

Вы могли бы пожелать, чтобы перекодировать, что и использовать что-то, как показано ниже, чтобы установить кодировку:

$ews = new ExchangeWebServices($host, $user, $password, ExchangeWebServices::VERSION_2007_SP1); 
$msg = new EWSType_MessageType(); 
$msg->MimeContent = new EWSType_MimeContentType(); 
$msg->MimeContent->_ = base64_encode("Mime-Version: 1.0\r\n" 
    . "From: [email protected]\r\n" 
    . "To: [email protected]\r\n" 
    . "Subject: nothing\r\n" 
    . "Date: Tue, 15 Feb 2011 22:06:21 -0000\r\n" 
    . "Message-ID: <{0}>\r\n" 
    . "X-Experimental: some value\r\n" 
    . "\r\n" 
    . "I have nothing further to say.\r\n"); 
$msg->MimeContent->CharacterSet = 'UTF-8'; 

дополнительные увидеть этот question here как это швами быть похожими.

Примечание: Это хороший вариант starting point regarding the content-type encoding. Вы также можете проверить официальное руководство Microsoft here.

 Смежные вопросы

  • Нет связанных вопросов^_^