Чтение электронной почты Outlook в С#

Мне нужен совет, как решить проблему. У меня есть приложение, которое отправляет электронные письма пользователям. Обратите внимание, я использую Microsoft Exchange как сервер email. Я хотел бы иметь функцию, в которой пользователь может ответить на электронное письмо, отправленное приложением, и приложение сможет прочитать ответ и выполнить определенные действия.

Например, приложение отправит электронное письмо с запросом на утверждение элемента. Я хотел бы, чтобы пользователь ответил на электронное письмо и сказал, был ли элемент одобрен или отклонен. Это очень простой сценарий, но он отражает то, что я хочу сделать. Как я могу читать электронные письма, отправленные на определенный адрес в c#?


person Community    schedule 10.04.2017    source источник
comment
Просто взгляните на Это   -  person mmushtaq    schedule 11.04.2017


Ответы (2)


Чтение, анализ и ответы на электронные письма в коде часто являются очень сложной частью механизма. Если вы открыты для предложений, одним из возможных решений может быть пара ссылок «Утвердить/Отклонить» в теле письма, которые ссылаются на ваш веб-сайт и запускают соответствующие действия в вашем рабочем процессе утверждения. Надеюсь, поможет!

person Eugene Komisarenko    schedule 10.04.2017
comment
Основываясь на моем исследовании, я узнаю, что это будет трудная задача. У меня есть ссылки, но поскольку сервер находится в частной сети, он не будет работать, когда пользователь находится вне сети или в Интернете. Я не верю, что компания хочет разместить свое приложение в Интернете. Спасибо за ваш ответ. - person ; 10.04.2017
comment
Правильно настроенный и аутентифицированный обратный прокси-сервер может помочь вам, если проблема касается только безопасности внутреннего периметра. Если вы действительно заблокированы для получения и анализа, вот хороший пример того, как это можно сделать на mailin.io. - person Eugene Komisarenko; 10.04.2017
comment
Вот ответ с примерами того, как это можно сделать на С# stackoverflow.com/a/11457840/920557 - person Eugene Komisarenko; 10.04.2017

Вы можете использовать EWS, см. Управляемый API EWS, EWS и веб-службы в Exchange. Если вы работаете с Office 365, вы также можете использовать API REST Outlook.

В настоящее время Microsoft не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любого автоматического неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и службы NT), поскольку Office может демонстрировать нестабильное поведение и/или или взаимоблокировка при запуске Office в этой среде.

Если вы создаете решение, работающее в контексте на стороне сервера, вы должны попытаться использовать компоненты, которые были сделаны безопасными для автоматического выполнения. Или вы должны попытаться найти альтернативы, которые позволяют хотя бы части кода выполняться на стороне клиента. Если вы используете приложение Office из решения на стороне сервера, у приложения не будет многих необходимых возможностей для успешной работы. Кроме того, вы рискуете стабильностью всего решения. Подробнее об этом читайте в Рекомендации по автоматизации Office на стороне сервера.

Если вы используете Outlook для отправки электронных писем, рассмотрите возможность использования VotingOptions класса MailItem, которое позволяет задать строку, определяющую строку с разделителями, содержащую параметры голосования для почтового сообщения. Это свойство использует символ, указанный в имени значения, sList, в разделе HKEY_CURRENT_USER\Control Panel\International в реестре Windows, в качестве разделителя для нескольких вариантов голосования. Таким образом, в ответе вы можете использовать свойство VotingResponse, которое возвращает строку, определяющую ответ на голосование для почтового сообщения. Этому свойству обычно присваивается одно из значений с разделителями, возвращаемых свойством VotingOptions в ответе на исходное сообщение.

person Eugene Astafiev    schedule 17.04.2017