使用Redemption,如何向外发电子邮件添加默认签名?

时间:2010-06-25 01:48:42

标签: outlook-redemption

这是我正在使用的代码。我花了一些时间查看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;
        }
    }

谢谢,

2 个答案:

答案 0 :(得分:0)

签名实际上是由Outlook检查器对象在实例化时插入的,因此如果您的代码在Outlook插件中运行,您可以尝试保存该项目,然后通过{{_MailItem从{OOM>重新打开它。 1}}然后调用它的_Namespace.GetItemFromId方法(实际上你不需要对返回的检查器引用做任何事情)。

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

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

答案 1 :(得分:0)

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