Как отправлять запросы задач Outlook по почте без Outlook?
Мне нужно повторить Outlook
функция / функциональность для отправки кому-либо запросов о задачах ( см. здесь), но с письмами, отправленными с веб-сервера с использованием ASP.NET C#
и без Outlook, установленного на веб-сервере (таким образом, использование автоматизации Outlook невозможно).
Я уже проверил, каковы возможности сделать это, и кажется, что общий способ отправить кому-то задание - это сгенерировать .ics
файл в iCalendar
формат, и включите этот файл в почту ( см. этот вопрос stackru).
Это прекрасно работает, однако нет эквивалента задач, отправленных outlook:
- События (VEVENT) имеют дату начала и дату окончания (например, задачу), но не имеют поля "завершение" (что имеет смысл, поскольку это событие, а не задача).
- У Todos (VTODO) есть только срок исполнения, без даты начала или окончания, и он не поддерживается в Outlook.
Я сам проверил, что именно Outlook отправляет в письме, содержащем запрос задачи: winmail.dat
файл (с content-type:application/ms-tnef
) кодируется как Base64
, Внутри этого файла (который является двоичным файлом) есть ссылка на IPM.TaskRequest
Кажется, это то, что мне нужно.
Я проверил Интернет и нашел несколько синтаксических анализаторов TNEF, но мне нужен противоположный вариант: генерировать из кода C# файл TNEF, который будет содержать запрос задачи. Я хотел бы знать, есть ли способ сделать это. Использование библиотеки (бесплатно или нет) не является проблемой.
1 ответ
Даже если Outlook установлен на веб-сервере, автоматизация Outlook на сервере, как правило, плохая идея.
Тем не менее, вы смотрели на Exchange Web Services? Он предоставляет полную объектную модель для интеграции с outlook. Очевидно, что он привязан к внешнему виду (в отличие от ics), но, похоже, подходит для вашего случая использования.
Обзор EWS: http://msdn.microsoft.com/en-us/library/exchange/dd877045%28v=exchg.140%29.aspx
Работа с задачами: http://blogs.msdn.com/b/dhruvkh/archive/2012/04/06/working-with-tasks-using-exchange-web-services.aspx