无法使用Gmail Java API获取包含文本或html内容的电子邮件正文?
我正在尝试使用Gmail Java API获取邮件正文。我正在获取所有字段,包括无法使用Gmail Java API获取包含文本或html内容的电子邮件正文?,java,email,gmail,gmail-api,Java,Email,Gmail,Gmail Api,我正在尝试使用Gmail Java API获取邮件正文。我正在获取所有字段,包括到、从、主题 但我无法获得文本正文,同时电子邮件的html正文这里是我的代码片段: List<MessagePart> parts = message.getPayload().getParts(); StringBuilder textSb = new StringBuilder(); StringBuilder htmlSb = new String
到、从、主题
但我无法获得文本正文,同时电子邮件的html正文这里是我的代码片段:
List<MessagePart> parts = message.getPayload().getParts();
StringBuilder textSb = new StringBuilder();
StringBuilder htmlSb = new StringBuilder();
for (MessagePart part : parts) {
if (part.getMimeType().equalsIgnoreCase("text/plain")) {
try {
textSb.append(new String(Base64.getDecoder().decode(part.getBody().getData()), "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
if (part.getMimeType().equalsIgnoreCase("text/html")) {
try {
htmlSb.append(new String(Base64.getDecoder().decode(part.getBody().getData()), "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
但这对我来说还不够,我需要全身的东西
在调试器的上述循环中迭代MessageParts
时,我得到两个部分,第一个是MIME类型multipart/alternative
,另一个是MIME类型application/pdf
,用于pdf文件附件
如何获取电子邮件正文?在搜索了更多信息后,我发现详细信息位于
Message
对象的MessageParts
列表的第一部分。在第一部分中,您将获得MessageParts
列表,其中包含电子邮件正文,即文本内容、html内容:
List<MessagePart> parts = message.getPayload().getParts().get(0).getParts();
StringBuilder mixContent = new StringBuilder();
for (MessagePart part : parts) {
if (part.getMimeType().equalsIgnoreCase("text/plain")) {
try {
mixContent.append(new String(Base64.getUrlDecoder().decode(part.getBody().getData()), "UTF-8"));
continue;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
if (part.getMimeType().equalsIgnoreCase("text/html")) {
try {
mixContent.append(new String(Base64.getUrlDecoder().decode(part.getBody().getData()), "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
List parts=message.getPayload().getParts().get(0.getParts();
StringBuilder mixContent=新的StringBuilder();
for(MessagePart:parts){
if(part.getMimeType().equalsIgnoreCase(“text/plain”)){
试一试{
append(新字符串(Base64.getUrlDecoder().decode(part.getBody().getData()),“UTF-8”);
继续;
}捕获(不支持的编码异常e){
e、 printStackTrace();
}
}
if(part.getMimeType().equalsIgnoreCase(“text/html”)){
试一试{
append(新字符串(Base64.getUrlDecoder().decode(part.getBody().getData()),“UTF-8”);
}捕获(不支持的编码异常e){
e、 printStackTrace();
}
}
}
List<MessagePart> parts = message.getPayload().getParts().get(0).getParts();
StringBuilder mixContent = new StringBuilder();
for (MessagePart part : parts) {
if (part.getMimeType().equalsIgnoreCase("text/plain")) {
try {
mixContent.append(new String(Base64.getUrlDecoder().decode(part.getBody().getData()), "UTF-8"));
continue;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
if (part.getMimeType().equalsIgnoreCase("text/html")) {
try {
mixContent.append(new String(Base64.getUrlDecoder().decode(part.getBody().getData()), "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}