У меня уже есть служба Windows C #, которую мы используем для внутреннего контроля каталога в нашей сети и, когда он обнаруживает изменение, отправляет электронное письмо с использованием нашего внутреннего SMTP-сервера указанным группам людей.
Мне нужно вставить изображение в это автоматическое письмо.Я понимаю, что мне нужно создать 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);
}