我正在尝试在独立回复窗口中回复电子邮件时获取GetConversation()。但它显示的是对话= null。我可以通过收件箱中的电子邮件进行对话,但是当我尝试在回复同一封电子邮件时进行对话时,它不会返回任何内容。我的代码在下面。
object selectedItem = application.ActiveInspector().CurrentItem;
Outlook.MailItem SelectedReply = selectedItem as Outlook.MailItem;
If (SelectedReply is Outlook.MailItem)
{
Outlook.Conversation conv = SelectedReply.GetConversation();
if (conv != null)
{
// Code here
}
else
{
MessageBox.Show("Conversation is not available.");
}
}
我收到消息框“无法进行对话”。
任何帮助将不胜感激。
谢谢。
答案 0 :(得分:1)
GetConversation返回 Null (在Visual Basic中为 Nothing )。在以下情况下,该项目没有对话:
该项目尚未保存。可以通过用户操作或自动保存以编程方式保存项目。
对于可以发送的项目(例如,邮件,约会项目或联系人项目),该项目尚未发送。
已通过Windows注册表禁用了对话。
该存储区不支持Conversation
视图(例如,Outlook在经典的在线模式下针对Microsoft Exchange Server 2010之前的版本运行)。使用IsConversationEnabled
对象的Store
属性来确定商店是否支持Conversation
视图。
因此,我建议至少在调用Save
方法之前先调用GetConversation
方法:
object selectedItem = application.ActiveInspector().CurrentItem;
Outlook.MailItem SelectedReply = selectedItem as Outlook.MailItem;
If (SelectedReply is Outlook.MailItem)
{
SelectedReply.Save();
Outlook.Conversation conv = SelectedReply.GetConversation();
if (conv != null)
{
// Code here
}
else
{
MessageBox.Show("Conversation is not available.");
}
}
答案 1 :(得分:-1)
您的代码似乎正在使用ActiveInspector来获取选定的项目,但是ActiveInspector用于打开的电子邮件或回复的活动全窗口。如果要在“资源管理器”窗口(内联响应)中获得答复的句柄,则需要通过Explorer.ActiveInlineResponse属性进行访问。