打印电子邮件

时间:2014-07-02 10:45:24

标签: c# .net-4.0 visual-studio-2013 vsto office-2010

我正在尝试使用vs2013 c#创建VSTO outlook 2010插件。

到目前为止,我有一个带有按钮的功能区栏,它出现在outlook功能区上。当我单击按钮时,它只显示一个消息框。

如何获得打印所选电子邮件的按钮?

1 个答案:

答案 0 :(得分:1)

使用PrintOut对象上的MailItem方法打印出电子邮件。

资源管理器窗口代码

如果您的功能区按钮显示在Outlook资源管理器窗口中,则可以使用以下代码打印出所有选定的电子邮件:

Explorer explorer = Globals.ThisAddIn.Application.ActiveWindow() as Explorer;
Selection selection = explorer.Selection;

for (int i = 1; i <= selection.Count; i++)
{
    var selectedItem = selection[i];

    if (selectedItem is MailItem)
    {
        MailItem mailItem = selectedItem as MailItem;
        mailItem.PrintOut();
    }

    Marshal.ReleaseComObject(selectedItem);
}

Marshal.ReleaseComObject(selection);

检查员窗口代码

如果您的按钮显示在检查器窗口中,您可以使用以下代码打印出电子邮件:

Inspector inspector = Globals.ThisAddIn.Application.ActiveWindow() as Inspector;
var currentItem = inspector.CurrentItem;

if (currentItem is MailItem)
{
    MailItem mailItem = currentItem as MailItem;
    mailItem.PrintOut();
}

Marshal.ReleaseComObject(currentItem);

<强> ReleaseComObject的

另请注意,我已使用ReleaseComObject方法释放COM对象。有关何时使用ReleaseComObject方法的详细信息,请参阅When ReleaseComObject is necessary in Outlook