在outlook中的ItemSend()方法内关闭检查器(撰写窗口)

时间:2015-09-21 05:00:53

标签: c# email outlook outlook-addin outlook-redemption

我使用Visual Studio 2013和Addin express v.7.7.4087开发了一个outlook。 我想处理ItemSend()并将项目保存到草稿并自动关闭检查器,除了关闭检查器之外我们可以做任何事情,因为不允许在ItemSend()方法内关闭检查器,我已经使用了一个windows.forms.timer(关闭定时器内的mailitem)来执行此操作但最终出现错误,其中显示“RCW内容已与............分离”错误

  1. 有没有其他方法可以做到这一点?

  2. 在兑换(对于展望)中,有没有办法做同样的事情?

    private void adxOutlookAppEvents1_ItemSend(object sender, DXOlItemSendEventArgs e)
    {
        Outlook.MailItem mailItem = null;
        Outlook.Recipients recipients = null;
        mailItem = e.Item as Outlook.MailItem;
        try
        {
                // Some code goes here
    
                if (editButtonClicked || swOffline)
                {
                    e.Cancel = true;
    
                    if (swOffline)
                    {
                        mailItem.Save();
                        timer.Start();
                    }
                }        
        }
        catch (Exception ex)
        {
    
        }
        finally
        {
    
        }
    }
    

2 个答案:

答案 0 :(得分:1)

您使用什么代码关闭检查器窗口?你能更具体一点吗?

  

有没有其他方法可以做到这一点?

Inspector类的Close方法就像一个魅力。

  

在赎回(对于展望)中,有没有办法做同样的事情?

它没有为此提供任何东西。该库基于扩展MAPI,并且对Outlook UI一无所知。

答案 1 :(得分:1)

只要您保留在引用的MailItem对象中,计时器就可以正常工作。看起来你的mailItem变量是在本地级别声明的,它将被垃圾收集。