EWS托管API - 使用POP3 / IMAP的电子邮件客户端不显示自定义标头

时间:2010-12-18 01:25:33

标签: c# exchangewebservices exchange-server-2007 ews-managed-api

我们已开始使用EWS托管API通过MS Exchange Server 2007发送电子邮件。 我们还有另一种产品,它通过POP3 / IMAP协议从MS Exchange Server 2007接收电子邮件。

使用下面给出的代码在C#.NET中使用EWS Manged API设置自定义标头时遇到的问题。 自定义标题不会显示。

当我将自定义标题发送给自己时,我也注意到了。并使用Microsoft Outlook查看标题我注意到标题是可见的但是只有小写,如“custheader”。

以下代码:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);

  service.Credentials = new WebCredentials("username", "password", "domain");                
  service.AutodiscoverUrl("emailaddress@xyz.com");

  EmailMessage message = new EmailMessage(service);
  message.Subject = "This is a test";
  message.Body = "xxxdffsasfasfasfsfsfsfsaffafasfsfsafasfafasffasf";


 message.ToRecipients.Add("toaddress@todomain.com");


ExtendedPropertyDefinition msg = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.InternetHeaders, "CUSTHEADER", MapiPropertyType.String);
 message.SetExtendedProperty(msg, "87677");

 message.SendAndSaveCopy();

您能否帮助我们,让我们知道如何使用EWS托管API或替代解决方案解决此问题。

仅供参考:我的同事用他自己的邮件服务器(Argo Mail)和我上面提到的电子邮件产品进行了测试。我们看到它会在您发送时按预期选择自定义标头 这消除了电子邮件IMAP / POP3产品可能对标题执行意外操作的任何可能性。如果Outlook Express没有看到标题,那么上面提到的电子邮件客户端肯定也看不到它。

那么,为什么这些标头没有显示给非MAPI客户端?在Outlook中,标题确实显示,但它是MAPI客户端。

我注意到上面使用的代码我们正在创建一个新的扩展属性。扩展属性和命名MAPI属性(已在http://technet.microsoft.com/en-us/library/bb851492%28EXCHG.80%29.aspx中引用)之间的区别是什么。

您能否回答这个问题并指出我们如何实现IMAP / POP3客户端读取的自定义标题?

1 个答案:

答案 0 :(得分:2)

自定义/修改标头可由MS Exchange Server 2007通过POP / IMAP传播到非Mapi客户端。
但我们需要运行以下命令:Set-TransportConfig -HeaderPromotionModeSetting [MayCreate | NoCreate | MustCreate] 例如:Set-TransportConfig -HeaderPromotionModeSetting MustCreate

在Exchange管理shell中,使用上面的cmdlet更改当前行为。默认值为NoCreate。您可以选择其他任何一种模式。

首选是使用MayCreate而不是MustCreate。

MS Exchange Server 2007仅在LOWER CASE中传播自定义标头。