我的目标是加载一封电子邮件,如果是新邮件,则将其标记为已读。
下面是我正在做的事情:
EmailMessage email=EmailMessage.bind(service,itemId);
email.load();
email.setSubject(GeneralUtils.replaceSpecialCharacters(email.getSubject()));
email.setBody(MessageBody.getMessageBodyFromText(GeneralUtils.replaceSpecialCharacters(email.getBody().toString())));
if(!email.getIsRead()){
email.setIsRead(true);
email.update(ConflictResolutionMode.AutoResolve);
}问题:第一次读取消息体时(在将消息标记为已读之前),我可以正确地读取消息体,如下所示:
This is message body但将邮件标记为已读并更新邮件后,当尝试再次加载此电子邮件时,邮件正文加载如下:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
This is message body
</body>
</html>请告诉我为什么我会得到这个行为,以及如何解决它。
发布于 2012-11-18 20:19:44
我通过不设置processed修复了它,我删除了下面这行,它工作得很好:
email.setBody(MessageBody.getMessageBodyFromText(GeneralUtils.replaceSpecialCharacters(email.getBody().toString())));https://stackoverflow.com/questions/13439926
复制相似问题