基于在 Outlook 中执行的搜索,我想将结果保存到本地驱动器中,我该如何继续?在 C# 或 ASP.Net 中有什么方法可以实现它吗?非常感谢。
问问题
2390 次
1 回答
2
您可以编写自己的 Outlook 插件来完成这项工作。
启动 Visual Studio,创建一个新的 Outlook 加载项。根据您的 Visual Studio 和 Office 版本,也许您必须安装 VS Tools for Office Runtime(如果我没记错的话)。
在启动时为 Application.ItemContextMenuDisplay 注册一个处理程序,并在事件处理程序中添加一个新菜单条目,让我们说“将消息保存到磁盘”,并创建一个事件处理程序,该处理程序获取选定的消息并将其保存到某处。
像这样的东西:
using Office = Microsoft.Office.Core;
using Outlook = Microsoft.Office.Interop.Outlook;
private void MyAddIn_Startup(object sender, System.EventArgs e)
{
Office.CommandBarButton bts = (Office.CommandBarButton)CommandBar.Controls.Add();
bts.Visible = true;
bts.Caption = "Save selected messages to disk";
bts.Click += new Office._CommandBarButtonEvents_ClickEventHandler(bts_Click);
}
private void bts_Click(Office.CommandBarButton Ctrl, ref bool CancelDefault)
{
Outlook.Selection list = this.Application.ActiveExplorer().Selection;
string fileName = "";
Object selObject;
Outlook.MailItem mailItem;
for (int i = 1; i < list.Count + 1; i++)
{
selObject = this.Application.ActiveExplorer().Selection[i];
if (selObject is Outlook.MailItem)
{
mailItem = (selObject as Outlook.MailItem);
if (mailItem != null)
{
fileName = Path.GetTempFileName();
mailItem.SaveAs(fileName, Outlook.OlSaveAsType.olMSG);
}
}
}
}
它没有任何错误检查,没有优化,这会将消息保存到临时文件中,但您可以获得基础知识。
它也不是自动保存的,但您必须选择消息,右键单击并选择新的菜单项。
于 2014-01-29T23:18:18.383 回答