JavaMail API - 获取消息时出错

标签 java jakarta-mail

我正在学习 Oracle 的有关使用 javamail api 访问我的电子邮件的教程。这是我的代码:

 import javax.mail.*;
 import javax.mail.internet.*;
 import java.util.Scanner;
 import java.util.Properties;

 public class MailClient {
    public static void main(String[] args) {
    Properties props = new Properties();
    Session session = Session.getDefaultInstance(props, null);


    Store store = session.getStore("pop3");
    store.connect("pop.gmail.com","email@gmail.com","password");

    Folder folder = store.getFolder("INBOX");
    folder.open(Folder.READ_ONLY);
    Message message[] = folder.getMessages();
    int i = message.length;
    for (int a=0;a<i;a++) {
        System.out.println(message[i].writeTo());
    }
    Scanner pause = new Scanner(System.in);
    folder.close(false);
    store.close();
}
}

这是我收到的错误:

MailClient.java:20 error: method writeTo in interface Part cannot be applied to given types;
System.out.println(message[i].writeTo());
required: OutputStream
found: no arguments
reason: actual and formal argument lists differ in length
1 error

有什么想法我做错了什么吗?

此外,在 Google 页面上,他们表示用户需要使用 SSL 来通过 POP3 进行连接。我将如何在 JavaMail API 中实现它?谢谢!

最佳答案

如上所述,您的错误位于

System.out.println(message[i].writeTo());

有两个问题:

  1. Message.writeTo() 将 OutputStream 作为参数,但您尚未提供。

  2. writeTo() 返回 void,因此不是 println() 的有效参数

Here是一些使用 POP3 和 SSL 通过 java mail api 连接到 GMail 的示例代码

关于JavaMail API - 获取消息时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12966951/

相关文章:

java - 使用条件选择查询

java - 按键事件未调度

java - 如何在java中使用指定的分隔符分割字符串,同时忽略/?

java - 将消息附加到 MaildirFolder 时出现 FileNotFoundException

java - com.sun.mail.util.MailConnectException : Couldn't connect to host, 端口 : localhost, 25;超时-1;

java - 将对象放入 ChannelBuffer

java.lang.NoSuchMethodError : org. bouncycaSTLe.asn1.DERSequence.<init>(Lorg/bouncycaSTLe/asn1/DEREncodableVector;)V

email - 用于 JavaMail 测试的邮件服务器

android - 在 android 中使用 java mail api 发送带有附件的电子邮件

email - 如何使用 JavaMailSenderImpl 将邮件发送到分发列表