Получить оригинальное сообщение с заголовками при пересылке сообщения перед отправкой в ​​EWS

Я пытаюсь предоставить способ пересылки электронной почты, как мы делаем в Outlook. Когда пользователь нажимает вперед, он открывает форму с исходным сообщением и информацией заголовка вверху, давая пользователю возможность изменить тело. Чтобы получить сообщение, я делаю следующее.

    var item = (EmailMessage)dataGridEmail.SelectedItem;
    ResponseMessage forward = item.CreateForward();
    textBlockForward.Text = forward.Body;

Я получаю ServiceObjectPropertyException с сообщением "Вы должны загрузить или назначить это свойство, прежде чем сможете прочитать его значение". Если я пытаюсь загрузить значение свойства тела перед доступом, я получаю NotSupportedException с сообщением "Указанный метод не поддерживается". Есть ли способ получить сообщение пересылки перед его отправкой?

2 ответа

Решение

Вместо того, чтобы использовать forward.Body, вы должны использовать item.Body заселить свой textBlockForward контроль. Посмотрите Пересылку сообщений электронной почты, используя EWS на MSDN для получения дополнительной информации.

var item = (EmailMessage)dataGridEmail.SelectedItem;
ResponseMessage forward = item.CreateForward();
textBlockForward.Text = item.Body; // needs to come from original message source
forward.BodyPrefix = "new body contents"; // prepended body content

Я уверен, что кто-нибудь может решить эту проблему. Это то, что я сделал.

    ResponseMessage responseMessage = message.createForward(); 
    // message is an EmailMessage object
    responseMessage.setBodyPrefix(body);
    responseMessage.save(WellKnownFolderName.Drafts);
    EmailMessage saved = responseMessage.save();
    saved.load(new 
    PropertySet(BasePropertySet.FirstClassProperties,ItemSchema.Body));
    MessageBody messageBody = saved.getBody();
    // do something with messageBody`enter code here`
    //System.out.println(saved.getBody().toString());
    saved.sendAndSaveCopy();
Другие вопросы по тегам