我正在创建一个FileStream .eml文件,用户可以在其默认电子邮件客户端(外观)中打开该文件,并且我想用用户自己的自定义签名填充HTMLBody。
这在本地运行时有效:
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;
}
来自此来源:Add the default outlook signature in the email generated
问题是
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
查看服务器而不是客户端的C:\。因此,当我在Web服务器上部署应用程序时,找不到签名。
有人知道我如何从他们的计算机访问用户签名吗?甚至有可能吗?