我正在从Gmail API提取原始数据。我解密数据并在基本实现中获得所需的内容。
当我的签名中包含图像并且发送一些附件时,我会遇到问题,然后Gmail JSON数据将具有复杂的层次结构,结果,我无法获取电子邮件内容。
从电子邮件的内容来看,我的意思是我们写的自定义消息,例如“你好,你好吗?”。
我正在获取所有其他东西,例如sendTo,附件等。
我从chrome应用程序中获取Gmail API原始数据,然后将其发送到我的OFBiz服务器,并在其中进行解密和处理。
更新:
经过四处搜寻,我发现问题出在OFBiz中MimeMessageWrapper.java
的局限性。
以下代码在 partId格式为0.0、0..1等的情况下效果很好。
public String getMessageBody() {
MimeMessage message = getMessage();
if (getMainPartCount() == 0) { // single part message
try {
Object content = message.getContent();
return getContentText(content);
} catch (Exception e) {
Debug.logError(e, module);
return null;
}
}
StringBuffer body = new StringBuffer();
for (int i = 0; i < getMainPartCount(); i++) {
int subPartCount = getSubPartCount(i);
String idx = Integer.toString(i);
if (subPartCount > 0) {
for (int si = 0; si < subPartCount; si++) {
String sidx = idx + "." + Integer.toString(si);
if (getPartContentType(sidx) != null && getPartContentType(sidx).toLowerCase(Locale.getDefault()).startsWith("text")) {
if (getPartDisposition(sidx) == null || getPartDisposition(sidx).equals(Part.INLINE)) {
body.append(getPartText(sidx)).append("\n");
}
}
}
} else {
if (getPartContentType(idx) != null && getPartContentType(idx).toLowerCase(Locale.getDefault()).startsWith("text")) {
// make sure the part isn't an attachment
if (getPartDisposition(idx) == null || getPartDisposition(idx).equals(Part.INLINE)) {
body.append(getPartText(idx)).append("\n");
}
}
}
}
return body.toString();
}
需要改进此代码。请提出一些好的方法。