Я создаю файл FileStream .eml, который пользователь может открыть в своем почтовом клиенте по умолчанию (outlook), и я хочу заполнить 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;
}
из этого источника: Добавьте подпись outlook по умолчанию в сгенерированном письме
Проблема в том, что
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
смотрит на C: \ сервера, а не на стороне клиента.Поэтому, когда я развертываю свое приложение на своем веб-сервере, оно не может найти подписи.
Кто-нибудь знает, как я могу получить доступ к подписи пользователей со своего компьютера?Это вообще возможно?