Add the default outlook signature in the email generated

前端 未结 11 466
甜味超标
甜味超标 2020-12-08 07:11

I am using the Microsoft.Office.Interop.Outlook.Application to generate an email and display it on the screen before the user can send it. The application is a

11条回答
  •  情歌与酒
    2020-12-08 08:11

    Take a look at the link below. It explains where the signatures can be found in the file system as well as how to read them properly.

    http://social.msdn.microsoft.com/Forums/en/vsto/thread/86ce09e2-9526-4b53-b5bb-968c2b8ba6d6

    The thread only mentions Window XP and Windows Vista signature locations. I have confirmed that Outlooks signatures on Windows 7 live in the same place as Vista. I have also confirmed that the signature location is the same for Outlook 2003, 2007, and 2010.

    Here's a code sample if you choose to go this route. Taken from this site.

    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;
    }
    

    Edit: See here to find the name of the default signature for Outlook 2013 or @japel's answer in this thread for 2010.

提交回复
热议问题