如何使用外部 java 代码 (IMAP) 从 IBM Domino Lotus 获取邮件?

问题描述 投票:0回答:1

我想使用外部 java 代码从收件箱中获取邮件并阅读消息。 我能够在 javamail api 的帮助下使用外部 java 代码连接到 Gmail 并获取和阅读邮件。 现在我也尝试对 IBM Domino Lotus 做同样的事情。

我正在使用以下代码...

String host = "<Host name>";
String username = "<User Name>";
String password = "<password>";

Properties properties = new Properties();
properties.setProperty("mail.store.protocol", "imap");
properties.setProperty("mail.imap.host", host);
properties.setProperty("mail.imap.port", "143");

try {
    Session emailSession = Session.getInstance(properties);
    Store emailStore = emailSession.getStore("imap");
    emailStore.connect(host, username, password);
            
    //Getting Inbox folder
    Folder emailFolder = emailStore.getFolder("INBOX");
    emailFolder.open(Folder.READ_ONLY);
            
        Message[] messages =emailFolder.getMessages(); 
    System.out.println("No Of Mails : "+messages.length);
            
    //closing
    emailFolder.close(false);
    emailStore.close();
}
catch(NoSuchProviderException nspe) {
    System.out.println(nspe.getMessage());
        System.out.println(me.toString());
    nspe.printStackTrace();
}
catch(MessagingException me){
        System.out.println(me.getMessage());
        System.out.println(me.toString());
        me.printStackTrace();
}
catch(Exception e) {
    System.out.println(e.getMessage());
        System.out.println(me.toString());
    e.printStackTrace();
}
    

emailStore.connect(主机,用户名,密码); 抛出以下异常:

javax.mail.MessagingException: <Host name>;
  nested exception is:
    java.net.UnknownHostException:  <Host name>
javax.mail.MessagingException:  <Host name>;
  nested exception is:
    java.net.UnknownHostException: <Host name>

    at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:611)
    at javax.mail.Service.connect(Service.java:291)
    at javax.mail.Service.connect(Service.java:172)
    at package1.MyClass.main(MyClass.java:40)
Caused by: java.net.UnknownHostException:  <Host name>
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:267)
    at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:227)
    at com.sun.mail.iap.Protocol.<init>(Protocol.java:107)
    at com.sun.mail.imap.protocol.IMAPProtocol.<init>(IMAPProtocol.java:103)
    at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:578)
    ... 3 more

我尝试将端口号更改为 993,并尝试将 ssl.enable 属性设置为 true。 但我一次又一次地遇到同样的异常。

我还检查了服务器设置。那里启用了 IMAP。

此代码类似于我用来成功连接到 Gmail 并获取邮件的代码。 这就是为什么我不确定这是否也是连接到 IBM Domino Lotus 的正确方法。

jakarta-mail lotus-domino
1个回答
0
投票

只有当您的 Domino 管理员启动“imap”任务并允许您的用户使用 IMAP(将邮件数据库转换为支持 imap)时,这才可能实现。

仅在服务器文档中启用端口来在 Domino 服务器上启用 imap 是不够的。

如果没有服务器端的这种设置,您需要完全不同的类和完全不同的方法来解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.