如何将Outlook中的用户邮件签名附加到以编程方式创建的电子邮件中

Rah*_*hul 2 c# outlook-addin

我有一个OL插件(c#com使用addin express)正在做这样的事情

mailItem = (Outlook.MailItem)OutlookApp.CreateItem(Outlook.OlItemType.olMailItem);
mailItem.To = ReceipientEmailAddress;
mailItem.Subject = "SOME TEXT";
mailItem.Body = NewBody;
mailItem.Display(false);
Run Code Online (Sandbox Code Playgroud)

但是这会导致默认签名消失我假设这是因为正在设置newBody我无法以任何方式读取签名或导致邮件创建包含签名

哦,这是OL 2007 .NET 2.0

Alb*_*ert 7

我有同样的问题但没有找到答案,所以我决定自己解决这个问题,手动获取签名,这就是我所做的.

       private string ReadSignature()
    {
        string appDataDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\Microsoft\\Signatures";
        string signature = string.Empty;
        DirectoryInfo diInfo = new DirectoryInfo(appDataDir);
        if (diInfo.Exists)
        {
            FileInfo[] fiSignature = diInfo.GetFiles("*.htm");
            if (fiSignature.Length > 0)
            {
                StreamReader sr = new StreamReader(fiSignature[0].FullName, Encoding.Default);
                signature = sr.ReadToEnd();

                if (!string.IsNullOrEmpty(signature))
                {
                    string fileName = fiSignature[0].Name.Replace(fiSignature[0].Extension, string.Empty);
                    signature = signature.Replace(fileName + "_files/", appDataDir + "/" + fileName + "_files/");
                }
            }
        }

        return signature;
    }
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.