我有一个应用程序可以自动化我的公司服务台和客户之间的电子邮件通信。 当应用程序需要回复现有的电子邮件时,我使用FindItems来获取电子邮件然后我加载我需要的属性,然后我使用(CreateReply)来获取我需要发送的响应电子邮件。 奇怪的行为如下: 我需要回复的电子邮件有一个正确的SentDateTime和时区(+4 GMT)但是当我从它创建回复时,"发送的日期回复到电子邮件"变成没有意义的UTC! 当我正确连接到交换时,我正在指定时区,我似乎无法找到指定创建的回复消息的时区的方法。
我真的希望有人对此有所了解。
只是要指出,当我使用Outlook手动回复电子邮件时,回复电子邮件发送日期时间是正确的。问题只发生在我使用交换网络服务时。
此致 耶兹德
答案 0 :(得分:1)
发生此问题是因为EWS托管API忽略了在大多数请求中发送TimeZone标头。对于回复,转发您需要发送时区标头,否则它会将标头信息设置为UTC。一种解决方法是使用事件在http://blogs.msdn.com/b/emeamsgdev/archive/2014/04/23/ews-missing-soap-headers-when-using-the-ews-managed-api.aspx中添加时区标头。 EWS托管API的源代码现在也可用,因此您还可以修补GetTimeZoneRequired方法并重新编译库https://github.com/OfficeDev/ews-managed-api/blob/31951f456519786e41232fa9ff6a3ab20b56cac3/Core/ServiceObjects/Items/Item.cs。
干杯 格伦