Java 如何在不下载附件文件的情况下获取电子邮件正文
这个问题与Java邮件API和Gmail帐户有关 我想通过忽略附件文件来显示gmail电子邮件中的消息部分。我的代码在没有附件的情况下可以正常工作,但当涉及到带有附件的电子邮件时,它不会给出输出 我只想显示电子邮件中的邮件正文Java 如何在不下载附件文件的情况下获取电子邮件正文,java,api,email,Java,Api,Email,这个问题与Java邮件API和Gmail帐户有关 我想通过忽略附件文件来显示gmail电子邮件中的消息部分。我的代码在没有附件的情况下可以正常工作,但当涉及到带有附件的电子邮件时,它不会给出输出 我只想显示电子邮件中的邮件正文 提前感谢。这只是第一次尝试不调试代码,但您可以尝试以下操作: private boolean textIsHtml=false; /** *返回消息的主要文本内容。 */ 私有字符串getText(第p部分)抛出 消息异常,IOException{ if(p.isMime
提前感谢。这只是第一次尝试不调试代码,但您可以尝试以下操作:
private boolean textIsHtml=false;
/**
*返回消息的主要文本内容。
*/
私有字符串getText(第p部分)抛出
消息异常,IOException{
if(p.isMimeType(“text/*”){
字符串s=(字符串)p.getContent();
textIsHtml=p.isMimeType(“text/html”);
返回s;
}
if(p.isMimeType(“多部分/备选方案”)){
//与纯文本相比,更喜欢html文本
Multipart mp=(Multipart)p.getContent();
字符串文本=空;
对于(int i=0;i
我认为您试图从中获取多部分和内容存在问题。
上述代码仅在以下情况下有效:
您可以使用消息对象调用getText方法(消息对象是
部分)
这只是第一次尝试调试代码,但您可以尝试以下操作:
private boolean textIsHtml=false;
/**
*返回消息的主要文本内容。
*/
私有字符串getText(第p部分)抛出
消息异常,IOException{
if(p.isMimeType(“text/*”){
字符串s=(字符串)p.getContent();
textIsHtml=p.isMimeType(“text/html”);
返回s;
}
if(p.isMimeType(“多部分/备选方案”)){
//与纯文本相比,更喜欢html文本
Multipart mp=(Multipart)p.getContent();
字符串文本=空;
对于(int i=0;i
我认为您试图从中获取多部分和内容存在问题。
上述代码仅在以下情况下有效:
您可以使用消息对象调用getText方法(消息对象是
部分)
添加不带附件的代码,如果您有任何带有附件的日志,也可以添加它。现在您可以了,问题部分来自第76行,不是吗?你试过调试它吗?你知道那里发生了什么吗?我会尝试一下,但这些信息应该由您在问题中提供;)当我有更多的空闲时间时,我会尝试调试它。添加您的代码,它可以在没有附件的情况下工作,如果您有任何带有附件的日志,也可以添加它。现在您可以了,问题部分来自第76行,不是吗?你试过调试它吗?你知道那里发生了什么吗?我会尝试一下,但这些信息应该由您在问题中提供;)当我有更多的空闲时间时,我将尝试调试它。我应该在现有代码中的何处添加此代码?我尝试添加它,但得到编译时错误?我应该在现有代码中的何处添加此代码?我尝试添加它,但得到编译时错误?
private boolean textIsHtml = false;
/**
* Return the primary text content of the message.
*/
private String getText(Part p) throws
MessagingException, IOException {
if (p.isMimeType("text/*")) {
String s = (String)p.getContent();
textIsHtml = p.isMimeType("text/html");
return s;
}
if (p.isMimeType("multipart/alternative")) {
// prefer html text over plain text
Multipart mp = (Multipart)p.getContent();
String text = null;
for (int i = 0; i < mp.getCount(); i++) {
Part bp = mp.getBodyPart(i);
if (bp.isMimeType("text/plain")) {
if (text == null)
text = getText(bp);
continue;
} else if (bp.isMimeType("text/html")) {
String s = getText(bp);
if (s != null)
return s;
} else {
return getText(bp);
}
}
return text;
} else if (p.isMimeType("multipart/*")) {
Multipart mp = (Multipart)p.getContent();
for (int i = 0; i < mp.getCount(); i++) {
String s = getText(mp.getBodyPart(i));
if (s != null)
return s;
}
}
return null;
}