1

我的目标是加载一封电子邮件,如果是新邮件,则将其标记为已读。

所以这就是我正在做的事情:

        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);
        }

ISSUE:第一次阅读邮件正文时(在将邮件标记为已读之前)我可以正确阅读邮件正文,如下所示:

This is message body

但在将邮件标记为已读并更新邮件后,再次尝试加载此邮件时,邮件正文加载如下:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
This is message body
</body>
</html>

请告知我为什么会出现这种行为,以及如何解决它。

4

1 回答 1

0

我通过不设置处理后的主体来修复它,我删除了以下行,它工作正常:

email.setBody(MessageBody.getMessageBodyFromText(GeneralUtils.replaceSpecialCharacters(email.getBody().toString())));
于 2012-11-18T12:19:44.340 回答