提问者:小点点

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


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

<code>java.lang.ClassCastException:java.lang.String无法转换为javax.mail.Multipat</code>

这是我的代码:

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

没有连接错误,因为它会获取主题、日期和所有这些东西,但电子邮件正文是一个谜。不会有附件,我只会收到简单的邮件(这是更大项目的一部分)

我想要的是阅读未读邮件(然后删除此邮件,这样收件箱将永久为空(垃圾邮件将被手动删除))。我缺乏关于网络编程/结构的知识,所有流行音乐、图像和其他东西都是空白。还要记住,我是一名新手程序员,这是我第一次带着代码走出电脑,不幸的是,我直接遇到了协议/身份验证/从互联网获取东西的问题。

我浏览了很多页面,但从未找到允许我自己创建它的解释......


共1个答案

匿名用户

你和这个人有关系吗?

JavaMail FAQ提供了大量有用信息的链接,包括JavaMail项目页面、示例代码等。您还可以在这里找到一些有用的背景材料和教程的链接。