Сохранение электронной почты как.eml с Windows Service
У меня есть служба, которая используется для автоматизации системы электронной почты, она также сохраняет копию файла.eml в локальной папке.
Использование Outlook Interop dll прекрасно работает для интерактивных приложений, однако нам нужно сделать его неинтерактивным сервисом, а создание интерактивного сервиса вызовет много проблем с безопасностью.
tl; dr Можно ли сохранить файл.eml в папке с помощью неинтерактивной службы Windows?
PS: электронная почта является объектом System.Net.Mail.MailMessage.
1 ответ
Решение
System.Net.Mail.SmtpClient
содержит встроенный функционал для записи сообщения на диск в формате.eml:
using (var c = new System.Net.Mail.SmtpClient.SmtpClient()
{
DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory,
PickupDirectoryLocation = "c:\\temp"
})
{
var mail = new MailMessage("someone@example.com", "someonelse@example.com", "Very important", "No, just kidding");
c.Send(mail);
}