1

我正在尝试提供一种转发电子邮件的方法,就像我们在 Outlook 中所做的那样。当用户单击前进时,它会打开一个表单,顶部是原始消息和标题信息,让用户有机会修改正文。要获取消息,我执行以下操作。

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

我收到一条ServiceObjectPropertyException消息“您必须先加载或分配此属性,然后才能读取其值”。如果我尝试在访问之前加载 body 属性的值,我会收到NotSupportedException消息"Specified method is not supported"。有没有办法在实际发送之前获取转发消息?

4

2 回答 2

0

而不是使用forward.Body,您应该使用item.Body来填充您的textBlockForward控件。有关更多详细信息,请参阅MSDN 上的使用 EWS 转发电子邮件

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
于 2012-02-28T15:44:58.843 回答
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();
于 2017-04-06T04:32:21.943 回答