ReplyAll() 函数在 Microsoft Outlook 中不起作用

ReplyAll() function not working in Microsoft Outlook

private void CreateEmailItem()
{
    Object selObject = this.Application.ActiveExplorer().Selection[1];
    string sendernames = (selObject as Outlook._MailItem).SenderName;
    Outlook._MailItem eMail = (Outlook._MailItem)
    this.Application.CreateItem(Outlook.OlItemType.olMailItem);
    eMail = selObject as Outlook._MailItem;
    ((Outlook._MailItem)eMail).Body = "Approved";
    ((Outlook._MailItem)eMail).ReplyAll();
}

如果我们改为使用 ((Outlook._MailItem)eMail).Send();它可以工作,但是在使用 ReplyAll() 函数时它不工作。

ReplyAll是returns新创建的item的函数。您上面的代码忽略返回值并在原始项目上设置 Body 属性。

无需从头开始创建新的邮件项目。相反,您可以使用从 ReplyAll 方法返回的项目。因此,您可以在资源管理器 window 中获取所选项目并将其转换为 MailItem class。

Object selObject = this.Application.ActiveExplorer().Selection[1];
Outlook._MailItem eMail = selObject as Outlook._MailItem;
Outlook._MailItem reply = eMail.ReplyAll();

之后就可以对reply对象进行处理,根据需要设置其属性了。

您可能会发现 How To: Respond to an Outlook email programmatically 文章很有帮助。