Сохранение электронной почты в формате .eml с помощью службы Windows

У меня есть служба, которая используется для автоматизации системы электронной почты, она также сохраняет копию файла .eml в локальной папке.

Использование библиотеки Outlook Interop dll прекрасно работает для интерактивных приложений, однако нам нужно сделать ее неинтерактивной службой, а создание интерактивной службы приведет к большому количеству проблемы безопасности.

tl;dr Есть ли способ сохранить файл .eml в папке с помощью неинтерактивной службы Windows?

PS: электронная почта является объектом System.Net.Mail.MailMessage.


person Lucas    schedule 12.02.2016    source источник
comment
Я только что провел поиск в Google, и получил множество результатов. Вы пробовали сделать это сами?..? это было сделано до успешного кстати   -  person MethodMan    schedule 12.02.2016
comment
не в службе Windows. ищу сутки.   -  person Lucas    schedule 12.02.2016
comment
прочитайте следующую ссылку в качестве альтернативы support.microsoft.com/en-us/kb/257757   -  person MethodMan    schedule 12.02.2016
comment
К сожалению, я уже пробовал это решение, ни одна из альтернатив не поддерживает расширение .eml.   -  person Lucas    schedule 12.02.2016


Ответы (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("[email protected]", "[email protected]", "Very important", "No, just kidding");
    c.Send(mail);
}
person Anders Abel    schedule 12.02.2016