从外部程序回复(打开)Outlook邮件

在外部应用程序中,我想回复电子邮件(Outlook是电子邮件客户端)。 电子邮件已在计算机屏幕上打开。 在回复中,我想在外部应用程序中插入代码生成的回复。 我可以选择搜索特定邮件,然后使用代码进行回复,而不是在单独的Outlook窗口中回复已打开的电子邮件。

任何想法在outlook对象中寻找什么? 任何代码示例(vb.net或c#)?

我已经知道如何通过代码从我的外部应用程序创建Outlook中的新电子邮件,但我不确定如何回复现有的电子邮件。

使用Application.ActiveExplorer.CurrentItem访问当前打开的消息,然后调用MailItem.Reply获取回复MailItem对象,修改其消息体(MailItem.Body),调用MailItem.Display将其显示给用户。

Outlook项目的Reply方法从原始消息创建一个预先发送给原始发件人的回复。 您只需要获取当前打开的电子邮件,在其上调用Reply方法并使用Send方法发送电子邮件。

要在资源管理器窗口中获取当前显示的电子邮件,您需要使用Explorer类的Selection属性(请参阅Application类的ActiveExplorer函数)。 如果是Inspector窗口,您可以使用Inspector类的CurrentItem属性(请参阅Application类的ActiveInspector函数)。 有关C#中的更多信息和示例代码,请参见如何:以编程方式确定当前Outlook项目 。

Outlook.Inspector inspector = null; Outlook.MailItem sourceMail = null; Outlook.MailItem replyMail = null; try { inspector = Application.ActiveInspector(); sourceMail = inspector.CurrentItem as MailItem; replyMail = sourceMail.Reply(); // any modifications if required replyMail.Send(); // just change mail to replyMail because mail variable ///is not declare } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message, "An exception is occured in the code of add-in."); } finally { if (sourceMail != null) Marshal.ReleaseComObject(sourceMail); if (replyMail != null) Marshal.ReleaseComObject(replyMail); if (inspector != null) Marshal.ReleaseComObject(inspector); } 

您还可以找到如何:以编程方式创建和发送Outlook邮件文章。