在Outlook加载项中发送时保存电子邮件

时间:2012-08-20 15:08:50

标签: c# outlook outlook-addin

我正在创建一个Outlook加载项(Visual Studio 2010,.NET 4.0,C#),我希望在发送后自动存档用户的电子邮件。到目前为止我所拥有的是:

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
   //Create an event handler for when items are sent
   Application.ItemSend += new ApplicationEvents_11_ItemSendEventHandler(saveEmail);
}


private void saveEmail(object Item, ref bool Cancel)
{
}

我通过调试发现的是,我的saveEmail方法在电子邮件实际发送之前就会触发。这没关系,理想情况下我希望在成功发送电子邮件后立即将其解雇,所以如果有办法做到这一点,我会感激一些指示。

在任何情况下,我都可以进入该方法,我想要做的是将该电子邮件作为Outlook.MailItem对象访问,并使用.SaveAs方法和我选择的任何参数。我将如何抓取当前打开并即将发送的电子邮件作为MailItem对象?

1 个答案:

答案 0 :(得分:3)

您可以尝试使用此代码

private void saveEmail(object Item, ref bool Cancel)
{
         var msg = Item as Outlook.MailItem;
         msg.SaveAs(yourPath, Outlook.OlSaveAsType.olMSG);
}