我正在尝试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.");
}
}
我得到消息框"对话不可用"。
任何帮助将不胜感激。
谢谢。
getConversation返回 null (在Visual Basic中 nothing basic basic中的Nothing (,如果该项目不存在对话。在以下情况下,没有对项目的对话:
-
该项目尚未保存。可以通过用户操作或自动保存来编程保存项目。
-
对于可以发送的项目(例如,邮件项目,约会项目或联系项(,该项目尚未发送。
-
通过Windows注册表已禁用对话。
-
该商店不支持
Conversation
视图(例如,Outlook以经典的在线模式与Microsoft Exchange Server更早的Microsoft Exchange版本运行。使用Store
对象的IsConversationEnabled
属性确定商店是否支持Conversation
视图。
所以,我建议至少在调用GetConversation
方法之前调用Save
方法:
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.");
}
}
似乎您的代码正在使用ActiveInspector来获取所选项目,但是ActiveInspector用于打开电子邮件或答复的主动全窗口。如果您想在"探索器"窗口中的回复(Inline响应(中获取A hange,则需要通过Explorer.ActiveInlinerSponse属性访问它。