JavaMail API - 获取消息时出错

时间:2012-10-19 03:28:09

标签: java javamail

我正在使用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中实现它?谢谢!

2 个答案:

答案 0 :(得分:3)

如上所示,您的错误在

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

有两个问题:

  1. Message.writeTo()接受一个OutputStream作为参数,你没有提供一个。

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

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

答案 1 :(得分:1)

消息[I] .writeTo(的System.out);