Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从外部程序回复(打开的)outlook邮件_C#_Vb.net_Outlook - Fatal编程技术网

C# 从外部程序回复(打开的)outlook邮件

C# 从外部程序回复(打开的)outlook邮件,c#,vb.net,outlook,C#,Vb.net,Outlook,在外部应用程序中,我想回复电子邮件(Outlook是电子邮件客户端)。电子邮件已在计算机屏幕上打开。在回复中,我想插入一个由外部应用程序代码生成的回复。我也可以搜索特定邮件,然后使用代码进行回复,而不是在单独的outlook窗口中回复已打开的电子邮件 你知道在outlook对象中查找什么吗?有代码示例(vb.net或c#)吗 我已经知道如何通过代码从外部应用程序在outlook中创建新电子邮件,但我不确定如何回复现有电子邮件。使用Application.ActiveExplorer.Curren

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

你知道在outlook对象中查找什么吗?有代码示例(vb.net或c#)吗


我已经知道如何通过代码从外部应用程序在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);
}