Я пытаюсь создать систему, которая будет перехватывать электронные письма, приходящие на различные адреса электронной почты, и каталогизировать их вместе со всеми их вложениями. Эти вложения - это все файлы, которые нам нужно загрузить в другую систему. В настоящее время мы используем макросы Outlook, чтобы отбросить все вложения в каталог и загрузить их таким образом. К сожалению, этот метод не позволяет легко отследить, какие электронные письма имели какие вложения. Если мы хотим обеспечить учет каждого полученного документа, нам нужен более надежный подход.
Итак, я создаю службу Windows на основе EWS. Идея в том, что он будет подписываться на все адреса электронной почты, которыми я хочу управлять. Таким образом, он будет знать обо всех новых письмах, каталогизировать их и отслеживать вложения. Он хорошо работает для большинства электронных писем, но отправленные безопасным образом электронные письма должны быть просмотрены человеком (поскольку для этих писем требуется вход на безопасный сервер где-нибудь, чтобы просмотреть сообщение и загрузить вложения). Но в электронных письмах с цифровой подписью я просто загружаю вложение с именем smime.p7m. Я нашел сообщение на этом форуме, в котором показано, как получать вложения, но что насчет того, если тело письма имеет цифровую подпись? Есть ли способ извлечь и это?
Я решил использовать подход MimeKit, описанный здесь (это не принято ответ, но некоторые из ответов относятся к MimeKit, поэтому я решил проверить его, и он выглядит многообещающим).
Мой текущий подход заключается в том, что если тело электронного письма не было подписано цифровой подписью, я могу загрузить его в свою систему прямо из основного электронного письма. Но если он имеет цифровую подпись, то мне нужно получить его из файла smime.p7m, и именно здесь у меня возникнут проблемы. Однако у меня нет проблем с использованием примеров для извлечения вложений. В настоящее время у меня нет примеров тела электронной почты с цифровой подписью. Но я хотел бы проявить инициативу и найти решение, прежде чем это произойдет, и пользователь спросит, почему отсутствует тело письма. В качестве альтернативы было бы не менее полезно знать, если это невозможно, и единственная часть электронного письма, которая будет иметь цифровую подпись, - это вложения (в этом случае я могу полностью игнорировать это). На самом деле это был бы лучший сценарий!