Создать новое сообщение электронной почты из полученной электронной почты в Exchange WebService API

Привет, у меня есть требование использовать EWS Microsoft Exchange WebService API для перенаправления электронной почты.

в основном программа считывает почтовый ящик на сервере Exchange, заменяет его на новый адрес ToAddress, адреса CC/BCC и повторно отправляет его с оригинальной темой, телом электронной почты и всеми вложениями. Это звучит как легкая работа, но я не мог найти легкий способ сделать это.

Я искал EWS API, похоже, что emailMessage.Forward() или emailMessage.CreateForward() - хороший вариант. но когда я попробовал их, они фактически добавили информацию о пересылке (т.е. оригинальный отправитель, метка времени и т. д.) в новое тело письма, это нежелательно.

Кто-нибудь знает простой способ сделать это?

или я должен сделать трудный путь? создать новый объект emailMessage и скопировать все из исходного объекта электронной почты и отправить новое письмо?
Любой пример кода для этой задачи приветствуется!

спасибо Фрэнк

1 ответ

Решение

То, что вы пытаетесь сделать, не будет работать в EWS (или любом клиентском API Exchange), потому что Exchange не позволит вам повторно отправить сообщение с адреса электронной почты, с которым ваш почтовый ящик не связан. Например, если я отправлю вам электронное письмо, а вы просто измените адрес ToAddress и попытаетесь отправить его повторно через клиентский API, вы получите ошибку, потому что у вас нет прав на отправку сообщения от имени пользователя (в этот момент ваши действия по сути являются спуфингом).

Если вы хотите перенаправить или скопировать сообщения другим получателям, лучше создать транспортное правило https://technet.microsoft.com/en-us/library/aa998315(v=exchg.160).aspx (это просто добавляет другой получатель существующего сообщения). Еще один способ сделать это, если вы получили MIMEContent сообщения с помощью EWS, а затем задали заголовки X-Sender и X-Recipient и затем использовали каталоги https://technet.microsoft.com/en-us/library/bb124230(v=exchg.150).aspx на сервере-концентраторе, чтобы отправить сообщение. По сути, это позволяет вам добавить еще один BCC к сообщению и доставить его в другой почтовый ящик с сохранением существующих заголовков.

Другие вопросы по тегам