Получить оригинальное сообщение с заголовками при пересылке сообщения перед отправкой в 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();