如何使用java mail API读取邮件(字符串不能转换为多部分)

如何使用java mail API读取邮件(字符串不能转换为多部分),java,email,gmail,jakarta-mail,inbox,Java,Email,Gmail,Jakarta Mail,Inbox,我正试图写一个简单的代码,将阅读邮件从gmail收件箱。 我找到了一些例子,但没有一个是有效的。 最有希望的是我在compiletimeerror.com上找到的代码,但无论我尝试什么,都会出现以下错误: java.lang.ClassCastException:java.lang.String不能转换为javax.mail.Multipart 这是我的密码: import java.util.*; import javax.mail.*; public class ReadingEmail

我正试图写一个简单的代码,将阅读邮件从gmail收件箱。 我找到了一些例子,但没有一个是有效的。 最有希望的是我在compiletimeerror.com上找到的代码,但无论我尝试什么,都会出现以下错误:


java.lang.ClassCastException:java.lang.String不能转换为javax.mail.Multipart

这是我的密码:

import java.util.*;
import javax.mail.*;

public class ReadingEmail {
    public static void main(String[] args) {
        Properties props = new Properties();
        props.setProperty("mail.store.protocol", "imaps");
        try {
            Session session = Session.getInstance(props, null);
            Store store = session.getStore();
            store.connect("imap.gmail.com", "yourEmailId@gmail.com","password");
            Folder inbox = store.getFolder("INBOX");
            inbox.open(Folder.READ_ONLY);
            Message msg = inbox.getMessage(inbox.getMessageCount());
            Address[] in = msg.getFrom();
            for (Address address : in) {
                System.out.println("FROM:" + address.toString());
            }
            Multipart mp = (Multipart) msg.getContent(); // here it breaks
            BodyPart bp = mp.getBodyPart(0);
            System.out.println("SENT DATE:" + msg.getSentDate());
            System.out.println("SUBJECT:" + msg.getSubject());
           System.out.println("CONTENT:" + bp.getContent());
        } catch (Exception mex) {
            mex.printStackTrace();
        }
    }
}
没有连接错误,因为它获取了主题、日期和所有这些信息,但电子邮件正文是个谜。没有附件,我只收到简单的邮件(这是更大项目的一部分)

我正在寻找的是阅读未读邮件(然后删除此邮件,这样收件箱将永久为空(垃圾邮件将被手动删除))。 我缺乏网络编程/结构方面的知识,所有的pop、IMAP和其他东西都是空白。 请记住,我是一名程序员新手,这是我第一次带着我的代码走出电脑,不幸的是,我直接进入了协议/身份验证/从互联网获取信息的问题

我浏览了很多页面,但从来没有找到一个可以让我自己创建它的解释…

你和我有亲戚关系吗


有指向许多有用信息的指针,包括等。您还可以找到指向一些有用的背景资料和教程的指针。

您遇到的错误是什么。java.lang.ClassCastException:java.lang.String不能转换为javax.mail.Multipart有时您应该只搜索您遇到的错误/异常。让我们知道以下链接是否对您有帮助。简而言之:“您的消息内容[正在]返回字符串,您正在尝试键入cast to Multipart”,对我来说,它只是说,异常是怎么说的。我无法将原本是一根弦的身体投射到多部分?我试图在代码中没有提到多部分的情况下将body强制转换为(String),但这不起作用。我最终解决了这个问题。不幸的是,在这件事上没有那么多的帮助。