Jür*_*ann 4 email outlook exchangewebservices
我有一个非常特殊的问题.
如果我们在Outlook中创建邮件,我们添加一个UserProperty,其中包含我们系统的DataBase-ID,因此我们可以将邮件链接到代表DataBase-Item.在读取每个邮箱中的邮件并自动导入它的服务上,我可以使用ExtendedPropertyDefinitions读取此属性.到目前为止一切都很好......
如果用户现在在Outlook中转发邮件,Olk会将UserProperty复制到新邮件.现在我的问题开始了.现在,我的服务认为新消息也链接到我们的数据库,并使用新的Body和新主题更新DB-Entry.
那么现在有人如何查明邮件是转发邮件还是如何告诉Outlook不要将userproperty复制到转发(新)邮件?
谢谢.松鸦
我们的想法,但不适合我们的情况
- 第二个用户属性包含一个简单的标签linke"fromSystem".因为这也会被复制.
- 第二个userproperty,包含从subject和Body计算的hashsum.原因两者都可以由用户更改.我们只是创建消息,添加所有属性并显示它.从这一点开始,我们不再控制邮件发生的事情,直到服务处理它为止.
您的服务使用EWS应检查ConversationIndex
并且仅在数据库长度为22个字节时更新数据库(原始源消息).转发电子邮件和回复电子邮件会将5个字节(10个字符)追加到ConversationIndex
超过22个字节的扩展位.
Original: 01CDD15D80E51C1D4522172840ACA96287DA28A15D97 Reply: 01CDD15D80E51C1D4522172840ACA96287DA28A15D970000018630 Forward: 01CDD15D80E51C1D4522172840ACA96287DA28A15D970000018630000000FC30
ConversationIndex
表示ConversationTopic
(基本上是GUID +时间戳)的顺序排序.请参阅在MSDN上使用对话.ConversationIndex
在明确的定义MSDN这里.
if (message.ConversationIndex.Length == 22)
{
// update DB body, subject, etc.
}
Run Code Online (Sandbox Code Playgroud)
还要确保EmailMessageSchema.ConversationIndex
在尝试访问其值之前加载.
归档时间: |
|
查看次数: |
1271 次 |
最近记录: |