您好我正在尝试在Outlook中点击自定义按钮阅读电子邮件内容。 即:右键单击邮件,然后在选定的邮件上单击自定义按钮 GoToApp 它应该读取邮件的所有内容,包括文本,附件信息和纯文本和图像 我附上了Outlook页面的快照。
我试过
Microsoft.Office.Interop.Outlook.Application myApp = new Microsoft.Office.Interop.Outlook.ApplicationClass();
Microsoft.Office.Interop.Outlook.NameSpace mapiNameSpace = myApp.GetNamespace("MAPI");
Microsoft.Office.Interop.Outlook.MAPIFolder myInbox = mapiNameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
if (myInbox.Items.Count > 0) {
// Grab the Subject
lblSubject.Text = ((Microsoft.Office.Interop.Outlook.MailItem)myInbox.Items[1]).Subject;
}
它是不工作它是cosidering邮件不在默认文件夹位置。
我如何能够实现这一目标请帮助。
感谢 NIKHIL
答案 0 :(得分:1)
在ItemContextMenuDisplay事件中(在右键单击时触发),有一个Outlook.Selection对象作为第二个参数传入。
使用此选项确定当前选定/活动的项目(如果有)。需要根据需要将对象强制转换为MailItem
。 (请记住,Outlook对象模型中的索引从1 开始,而不是0。)
无法确定执行右键单击的确切项目(可能选择了多个项目,或者可能选择了 no 项目),但是右键单击的项目在将作为所选项目之一时执行。此外,当前位于阅读窗格中的项目可能不对应于所选项目。
快乐的编码。
答案 1 :(得分:0)
这是MailItem上下文菜单中自定义功能区按钮的功能区回调。
public void BtnClickHandler(Office.IRibbonControl btn)
{
var ex = btn?.Context?.Parent as Outlook.Explorer;
if (ex == null) return;
foreach (var sel in ex.Selection)
{
var mailItem = sel as Outlook.MailItem;
if (mailItem != null) DoSomethingWith(mailItem);
}
}