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

问题描述:

我们已经开始使用EWS托管API通过MS Exchange Server 2007发送电子邮件。 我们有另一种产品通过MS Exchange Server 2007通过电子邮件接收POP3/IMAP协议。EWS托管API - 使用POP3/IMAP的电子邮件客户端不显示自定义标头

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

另外我注意到,当我发送自定义标题下面给自己。并检查使用Microsoft Outlook的标题我已经注意到,标题是可见的,但只有小写的“custheader”。

代码如下:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1); 

    service.Credentials = new WebCredentials("username", "password", "domain");     
    service.AutodiscoverUrl("[email protected]"); 

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


message.ToRecipients.Add("[email protected]"); 


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客户端读取的自定义标题?

自定义/修改的标题可以由MS Exchange Server 2007传播给使用POP/IMAP的非Mapi客户端。
但是我们需要运行以下命令:Set-TransportConfig -HeaderPromotionModeSetting [MayCreate | NoCreate | MustCreate] 对于例如为:设置传输-HeaderPromotionModeSetting MustCreate

在Exchange命令行管理程序使用上面的cmdlet来改变目前的行为。缺省值是NoCreate。您可以选择其他模式。

首选是使用MayCreate而不是MustCreate。

MS Exchange Server 2007只传播LOWER CASE中的自定义标头。