【问题标题】:How to read mail with java mail API (String cannot be cast to Multipart)如何使用 java 邮件 API 读取邮件(字符串不能转换为 Multipart)
【发布时间】:2015-05-04 15:19:03
【问题描述】:

我正在尝试编写一个简单的代码来读取来自 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();
        }
    }
}

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

我正在寻找的是阅读未读邮件(然后删除此邮件,因此收件箱将永久为空(垃圾邮件将被手动删除))。 我缺乏关于网络编程/结构的知识,所有那些流行音乐、imaps 和东西都是空白。 另外请记住,我是一名新手程序员,这是我第一次带着我的代码离开我的计算机,不幸的是直接进入协议/身份验证/从互联网获取东西的问题。

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

【问题讨论】:

  • 您遇到的错误是什么。
  • java.lang.ClassCastException: java.lang.String 无法转换为 javax.mail.Multipart
  • 有时你应该用谷歌搜索你得到的错误/异常。如果以下链接对您有帮助,请告诉我们。简而言之:“您的消息内容 [is] 返回 String,您正在尝试将类型转换为 Multipart” stackoverflow.com/questions/23116465/…
  • 对我来说,它只是说明了异常的含义。我不能将原本是字符串的主体转换为?Multipart?我尝试在代码中没有提到多部分的情况下将 body 转换为 (String),但这不起作用。
  • 我终于解决了。可悲的是,在这件事上没有太多帮助。

标签: java email gmail jakarta-mail inbox


【解决方案1】:

你和this guy有关系吗?

JavaMail FAQ 包含指向许多有用信息的指针,包括 JavaMail project pagesample code 等。您还可以找到指向一些有用背景材料和教程的指针 here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 2023-01-07
    • 2011-07-10
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    相关资源
    最近更新 更多