java - 使用 JavaMail 访问 Mailinator POP3

标签 java jakarta-mail pop3

我正在尝试使用 JavaMail API 访问 mailinators 消息。

我可以正确连接到服务器等。但是在阅读消息时,我不断收到“文件夹未打开”异常,当我检查文件夹是否打开时,如果没有打开文件夹,那将无济于事任何一个。我猜出于某种原因,mailinator 结束了连接。

如果我尝试获取消息的输入流而不是使用 getContent,我可以很好地从输入流中读取它并且它包含消息的样式等。但是由于某种原因,我从输入流中读取的数据似乎不包含消息正文..

如果这是关于 mailinator 的,或者你可以为我提供任何其他支持 pop3 或其他易于阅读的随机电子邮件阅读服务,那么我是否为这个项目使用 mailinator 并不重要。

我当前的邮件阅读代码。

private void checkMail(String user) {
    Properties props = new Properties();
    Session session = Session.getDefaultInstance(props, null);
    try {
        Store store = session.getStore("pop3");
        store.connect("pop.mailinator.com", 110, user, "12345678");
        Folder inbox = store.getFolder("inbox");
        if(inbox == null) {
            System.out.println("no inbox");
        } else {
            inbox.open(Folder.READ_ONLY);
            for(Message message: inbox.getMessages()) {

                byte[] buffer = new byte[10000];

                int read = 0;

                try {

                    while((read = message.getInputStream().read(buffer, 0, 1024)) > 0) {
                        for(int i = 0; i < buffer.length; i++) {
                            System.out.print((char)buffer[i]);
                        }
                    }
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                /*try {
                    System.out.println(message.getContent().toString());
                } catch (IOException e) {
                    e.printStackTrace();
                }*/
            }
        }
        inbox.close(false);
        store.close();
    } catch (NoSuchProviderException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (MessagingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

同样,当从输入流读取时,输入流似乎永远不会结束,只是重新开始。我的目的是获取邮件正文和主题。

最佳答案

过去一段时间,Mailinator 改变了行为,禁止 POP3 访问,(或只为付费客户保留)。也许那是你的问题(如果代码适用于其他邮件提供商)。

关于java - 使用 JavaMail 访问 Mailinator POP3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10706604/

相关文章:

java - 在条件sqlite数据库中使用OR语句

java - 错误 : java. lang.SecurityException:权限拒绝:以另一种风格启动 Intent

java -\app\src\main\res\layout\activity_login.xml : AAPT: error: file failed to compile

java - Spring-boot-starter-mail 3.1.1 抛出 "Not provider of jakarta.mail.util.StreamProvider was found"

c# - 无法使用 POP3 删除电子邮件

c# - 如何将原始电子邮件字符串解析为 System.Net.Mail.MailMessage 对象?

java - 当每个人都对 OSGi 进行标准化时,为什么 Sun 还要发明另一个模块系统?

JavaMail MimeMultiPart 不发送全部内容

JavaMail Hotmail 获取文件夹列表

java - 连接到 POP3 服务器会出现无法识别的 SSL 消息,纯文本连接问题