Сохранение электронной почты как.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);
}
Другие вопросы по тегам