Используя Redemption, Как я могу добавить подпись по умолчанию к исходящему почтовому сообщению? - PullRequest
1 голос
/ 25 июня 2010

Вот код, который я использую. Я потратил некоторое время на просмотр объектов Искупления, но ничего не выскакивает на меня:

    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 голосов
/ 19 декабря 2012

Я добавил код для добавления в oMail.HTMLBody, который считывает подпись из папки C: \ Users \ UserName \ AppData \ Roaming \ Microsoft \ Signatures.Этот файл создается с помощью плагина, написанного одним из наших разработчиков, который считывает информацию из Exchange для определения имени пользователя, названия, телефона, факса и т. Д.

0 голосов
/ 24 мая 2011

Подпись фактически вставляется объектом инспектора Outlook при создании экземпляра, поэтому, если ваш код выполняется внутри надстройки Outlook, вы, вероятно, можете попытаться сохранить элемент и затем снова открыть его из OOM как _MailItem через _Namespace.GetItemFromId изатем вызывая метод GetInspector (на самом деле вам не нужно ничего делать с возвращенной ссылкой инспектора).

Обратите внимание, что я не пробовал это с предметом, изначально созданным через RDO.Я обычно создаю элементы в OOM, а затем создаю оболочку RDO.

Если ваш код работает за пределами Outlook, вам придется использовать OLE, чтобы получить ссылку на его _Application объект, а затем потянуть _Namespace объект оттуда.Если вы используете автономный MAPI без установленного Outlook, функция подписи будет полностью недоступна.

...