1

这是我正在使用的代码。我花了一些时间查看 Redemption 对象,但是,没有什么能引起我的注意:

    public static bool PopEmail(string domainUserName, string mSubject, string mBody, string mTo, string mCc = "", string mBcc = "", List<String> fileAttachments = null)
    {
        log.Info("Starting to Pop Outlook Email Message");
        RDOSession oSession = new RDOSession();
        try
        {
            oSession.LogonExchangeMailbox(domainUserName, string.Empty);
            if (oSession.LoggedOn)
            {
                RDOMail oMail = oSession.GetDefaultFolder(rdoDefaultFolders.olFolderOutbox).Items.Add("IPM.Note");
                oMail.Subject = mSubject;
                oMail.Body = mBody;
                oMail.To = mTo;
                oMail.CC = mCc;
                oMail.BCC = mBcc;
                if (fileAttachments != null)
                {
                    foreach (string file in fileAttachments)
                    {
                        object newFile = file;
                        oMail.Attachments.Add(newFile, Type.Missing, Type.Missing, Type.Missing);
                        newFile = null;
                    }
                }
                oMail.Display();
                Marshal.FinalReleaseComObject(oMail);
                oMail = null;
            }
            oSession.Logoff();
            Marshal.FinalReleaseComObject(oSession);
            oSession = null;
            GC.Collect();
            GC.WaitForPendingFinalizers();
            log.Info("Outlook Email has been Popped.");
            return true;
        }
        catch (Exception)
        {
            log.Error("Outlook Pop Email Failed.");
            throw;
        }
    }

谢谢,

4

2 回答 2

0

签名实际上是由 Outlook 检查器对象在实例化时插入的,因此,如果您的代码在 Outlook 插件中运行,您可能会尝试保存该项目,然后从 OOM 重新打开它作为_MailItem通过_Namespace.GetItemFromId,然后调用其GetInspector方法(您不实际上必须对返回的检查员参考做任何事情)。

请注意,我没有尝试使用最初通过 RDO 创建的项目。我通常在 OOM 中创建项目,然后创建 RDO 包装器。

如果您的代码在 Outlook 之外运行,则必须使用 OLE 来获取对其_Application对象的引用,然后_Namespace从那里拉出对象。如果您在未安装 Outlook 的情况下使用独立 MAPI,则签名功能完全不可用。

于 2011-05-24T08:10:39.043 回答
0

我添加了附加到 oMail.HTMLBody 的代码,该代码从 C:\Users\UserName\AppData\Roaming\Microsoft\Signatures 文件夹中读取签名。该文件是通过我们的一位开发人员编写的插件生成的,该插件从 Exchange 读取信息以确定用户名、职务、电话、传真等。

于 2012-12-19T19:51:34.727 回答