You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过自定义发送按钮调用内嵌回复邮件的Send方法?

Outlook内嵌回复邮件自动发送后的窗口关闭问题

背景

找到其他用户的类似提问,该问题已有解答,但对应答案页面已失效。

尝试操作

已在Inspector Activate事件中调用Item.Send方法,同时在New Inspector事件中调用Activate方法。但邮件窗口无法自动关闭,必须点击任务栏上的窗口图标使其获得焦点后,窗口才会消失。

代码实现

void Inspectors_NewInspector(Microsoft.Office.Interop.Outlook.Inspector Inspector)
{
    Base objBase = new Base();
    dynamic mailItem = objBase.GetItemObject(Inspector.CurrentItem);

    var inspector = Inspector as Outlook.InspectorEvents_10_Event;
    if (inspector != null)
    {
        inspector.Close += Inspectors_CloseInspector;
    }
    if (mailItem != null)
    {
        if (mailItem is Outlook.MailItem)
        {
            if (IsInlineItem)
            {
                _MailItem = mailItem;
                ((Outlook.InspectorEvents_Event)Inspector).Activate += new Outlook.InspectorEvents_ActivateEventHandler(InspectorActivate);
                ((Outlook.InspectorEvents_Event)Inspector).Deactivate += new Outlook.InspectorEvents_DeactivateEventHandler(InspectorDeactivate);
                ((Outlook.InspectorEvents_Event)Inspector).Close += new Outlook.InspectorEvents_CloseEventHandler(Inspectors_CloseInspector);
                Inspector.Activate();
            }
            else if (mailItem.Sent == false)
            { _MailItem = mailItem; }
            else
            {
                Marshal.ReleaseComObject(mailItem);
            }
        }
        else
        {
            _MailItem = mailItem;
            Marshal.ReleaseComObject(mailItem);
        }
    }
    objBase.WriteError("new Inspector");
}

private void InspectorActivate()
{
    Base objBase = new Base();
    Outlook.Inspector ActiveInspector = Application.ActiveInspector();
    if (ActiveInspector != null)
    {
        dynamic selectedItem = objBase.GetItemObject(ActiveInspector.CurrentItem);
        if (selectedItem != null && _MailItem.Subject == selectedItem.Subject && selectedItem.Sent == false)
        {
            try
            {
                selectedItem.Send();
            }
            catch (Exception e)
            {
                // 可在此添加异常日志记录逻辑
            }
            finally
            {
                Marshal.ReleaseComObject(selectedItem);
                Marshal.ReleaseComObject(ActiveInspector);
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者Nilesh Pegasus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 17:25:18