C# 从外部程序回复(打开的)outlook邮件
在外部应用程序中,我想回复电子邮件(Outlook是电子邮件客户端)。电子邮件已在计算机屏幕上打开。在回复中,我想插入一个由外部应用程序代码生成的回复。我也可以搜索特定邮件,然后使用代码进行回复,而不是在单独的outlook窗口中回复已打开的电子邮件 你知道在outlook对象中查找什么吗?有代码示例(vb.net或c#)吗C# 从外部程序回复(打开的)outlook邮件,c#,vb.net,outlook,C#,Vb.net,Outlook,在外部应用程序中,我想回复电子邮件(Outlook是电子邮件客户端)。电子邮件已在计算机屏幕上打开。在回复中,我想插入一个由外部应用程序代码生成的回复。我也可以搜索特定邮件,然后使用代码进行回复,而不是在单独的outlook窗口中回复已打开的电子邮件 你知道在outlook对象中查找什么吗?有代码示例(vb.net或c#)吗 我已经知道如何通过代码从外部应用程序在outlook中创建新电子邮件,但我不确定如何回复现有电子邮件。使用Application.ActiveExplorer.Curren
我已经知道如何通过代码从外部应用程序在outlook中创建新电子邮件,但我不确定如何回复现有电子邮件。使用Application.ActiveExplorer.CurrentItem访问当前打开的邮件,然后调用MailItem.reply获取回复MailItem对象,修改其邮件正文(MailItem.body),调用MailItem.Display将其显示给用户。Outlook items的方法从原始邮件中创建一个预先发送给原始发件人的回复。您只需获取当前打开的电子邮件,调用其上的Reply方法并使用该方法发送电子邮件 要在资源管理器窗口中获取当前显示的电子邮件,需要使用资源管理器类的Selection属性(请参阅应用程序类的ActiveExplorer函数)。对于Inspector窗口,可以使用Inspector类的CurrentItem属性(请参阅应用程序类的ActiveInspector函数)。有关更多信息和C#中的示例代码,请参见
你也会发现这篇文章很有帮助 多亏了这些提示,我才得到了我想要的东西。谢谢。你的回答也很有帮助,因为它澄清了我在遵循Dmitry的指示后遇到的一些编码问题。如果我能够接受不止一个答案,我也会选择你的答案。
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);
}