Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在不下载附件文件的情况下获取电子邮件正文_Java_Api_Email - Fatal编程技术网

Java 如何在不下载附件文件的情况下获取电子邮件正文

Java 如何在不下载附件文件的情况下获取电子邮件正文,java,api,email,Java,Api,Email,这个问题与Java邮件API和Gmail帐户有关 我想通过忽略附件文件来显示gmail电子邮件中的消息部分。我的代码在没有附件的情况下可以正常工作,但当涉及到带有附件的电子邮件时,它不会给出输出 我只想显示电子邮件中的邮件正文 提前感谢。这只是第一次尝试不调试代码,但您可以尝试以下操作: private boolean textIsHtml=false; /** *返回消息的主要文本内容。 */ 私有字符串getText(第p部分)抛出 消息异常,IOException{ if(p.isMime

这个问题与Java邮件API和Gmail帐户有关

我想通过忽略附件文件来显示gmail电子邮件中的消息部分。我的代码在没有附件的情况下可以正常工作,但当涉及到带有附件的电子邮件时,它不会给出输出

我只想显示电子邮件中的邮件正文


提前感谢。

这只是第一次尝试不调试代码,但您可以尝试以下操作:

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