【问题标题】:Using Redemption, How can I add a default Signature to an outgoing Email Message?使用兑换,如何将默认签名添加到外发电子邮件?
【发布时间】:2012-12-20 03:51:34
【问题描述】:

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

谢谢,

【问题讨论】:

    标签: outlook-redemption


    【解决方案1】:

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

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

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

    【讨论】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-09-08
      • 2013-10-06
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      相关资源
      最近更新 更多