C# 아웃룩 서명 가져오기

2019. 6. 14. 10:53C#

728x90
반응형

 


아웃룩 작성! (사용할 때)

 

private void Result(object sender, EventArgs e)
{
    Outlook.Application outl = new Outlook.Application();
    Outlook.MailItem oMsg = (Outlook.MailItem)outl.CreateItem(Outlook.OlItemType.olMailItem);

    string textTitle = @"hi" + DateTime.Today.ToString("MM") + "_" + DateTime.Today.ToString("dd") +  GetDay(DateTime.Now) ;
    string textBody = @"hello";
    string textMailTo = @"'aaaa@gmail.com";
    string textMailCC = @"'adcd@gmail.com";

    oMsg.Subject = textTitle;
    oMsg.To = textMailTo;
    oMsg.CC = textMailCC;
    oMsg.Display(true);
    oMsg.HTMLBody = textBody + Environment.NewLine + ReadSignature();
}

 

 

 

아래 직접 제작한 ReadSignature 함수를 호출해서 Body에 붙여 줍니다.
※ 이 방식은 outlook의 Appdata 경로에 저장 된 Signature 파일에 직접 접근하는 방식입니다.



 

private string ReadSignature()
{
    string appDataDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\Microsoft\\Signatures";
    Console.WriteLine(appDataDir);
    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;
}

 

 

728x90
반응형