如何使用Java Mail API读取邮件(无法将字符串投入到Multipart)



我正在尝试编写一个简单的代码,该代码将从Gmail收件箱中读取消息。我发现了一些例子,但是其中没有奏效。最有前途的是我在CompilatimeError.com上找到的代码,但是无论我尝试什么,我都会得到此错误:

java.lang.ClassCastException: java.lang.String cannot be cast to 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();
        }
    }
}

没有连接错误,因为它得到了主题,日期和所有这些内容,但是电子邮件主体是个谜。不会有附件,我只会收到简单的邮件(这是大项目的一部分)

我正在寻找的是阅读未读邮件(然后删除此消息,因此收件箱将是永久为空的(垃圾邮件将被手动删除)。我缺乏有关Web编程/结构的知识,所有流行音乐,IMAP和内容都是空白的空间。还请记住,我是一名新手程序员,这是我不幸的是,我第一次将我的代码出现在计算机外面,直接直接涉及协议/身份验证/从Internet中获取东西的问题。

我经历了很多页面,但从未找到可以让我自己创建的解释...

您与这个人有关系吗?

Javamail FAQ对许多有用的信息有指示,包括Javamail项目页面,示例代码等。您还可以在此处找到一些有用的背景材料和教程的指针。

相关内容

  • 没有找到相关文章

最新更新