我正在尝试提供转发电子邮件的方法,就像我们在Outlook中一样。当用户单击向前时,它会打开一个表单,其中包含原始消息和标题信息,使用户有机会修改正文。要获取消息,我会执行以下操作。
var item = (EmailMessage)dataGridEmail.SelectedItem;
ResponseMessage forward = item.CreateForward();
textBlockForward.Text = forward.Body;
我收到ServiceObjectPropertyException
消息“您必须先加载或分配此属性才能读取其值。”如果我在访问之前尝试加载body属性的值,我会收到NotSupportedException
消息“不支持指定的方法”。有没有办法在实际发送之前获取转发消息?
答案 0 :(得分:0)
您应该使用forward.Body
来填充item.Body
控件,而不是使用textBlockForward
。有关详细信息,请参阅Forwarding Email Messages using EWS on 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
答案 1 :(得分:0)
我注意到有人能解决这个问题。这就是我所做的。
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();