У меня уже есть сервис окон C#, который мы используем внутренне для контроля каталога в нашей сети и когда она обнаруживает изменение, отсылает электронное письмо с помощью нашего внутреннего сервера SMTP для указанных групп людей.
Теперь мне нужно к embedd изображение в том автоматизированном электронном письме. Я понимаю, что должен создать AlternateView и Связанный Ресурс и использовать cID Связанного Ресурса в AlternateView, корректном.
То, что я не понимаю, - то, куда я помещаю изображение? Если я добавляю его к своему сервисному проекту и устанавливаю Copy to Output Directory = Copy Always
? Если так, как я затем получил бы доступ при создании моего LinkedResource? Кроме того, куда я помещаю изображение на Сервер, размещающий Сервис?
Вот то, что я имею до сих пор, но это, кажется, не работает. Я не получаю ошибок, о которых я знаю, но я не получаю электронное письмо также. Я предполагаю, что это ищет изображение, но что у меня нет его в корректном месте.
// This event is called when an object(file,folder) is created in the srcPath
void WatcherCreated(object source , FileSystemEventArgs e)
{
var folderName = e.Name;
var folderPath = e.FullPath;
MailMessage mail = new MailMessage();
mail.From = new MailAddress("FolderMonitor@myWork.org");
mail.To.Add("PSchaller@myWork.org");
mail.Subject = "New Enrollment for " + folderName;
AlternateView plainView = AlternateView.CreateAlternateViewFromString("This is the plain text view", null,
"text/html");
AlternateView htmlView =
AlternateView.CreateAlternateViewFromString("Here is an embedded image. <img src=cid:enrollProcessID>",
null, "text/html");
LinkedResource imageResourceLink = new LinkedResource("C:\\FolderMonitorService\\EnrollmentProcess.jpg")
{ContentId = "enrollProcessID"};
htmlView.LinkedResources.Add(imageResourceLink);
mail.AlternateViews.Add(plainView);
mail.AlternateViews.Add(htmlView);
var smtp = new SmtpClient("internalSMTP");
smtp.Send(mail);
}
На самом деле, вы здесь неверно интерпретируете ошибку. Насколько я могу судить, ваш код абсолютно нормальный. Чтобы еще раз проверить его, я скопировал его в простое приложение, обновил локальный путь к изображению и запустил это - я получил электронное письмо немедленно ..
Кроме того, если я укажу неправильный путь к файлу - он немедленно выдаст исключение, заявив, что файл не найден:)
Если вы этого не сделаете Я не получаю изображение в свой почтовый ящик, возможно, его фильтруют фильтры спама .. Я исключаю здесь настройки сервера smtp, потому что вы говорите, что отправка версии только с открытым текстом работает :)
UPD: Из личного опыта я рекомендую изменить кодировку на UTF8. Это был один из критериев, по которым мои почтовые сообщения были удалены фильтрами спама. Кроме того, ваш код выглядит нормально, и я не вижу причин, по которым он не работает .. В конце концов, он работает на моей стороне: )