0

我是 Notes JAVA API 的新手,正在开发一个实用程序,我需要从 Lotus notes id 读取所有未读邮件。现在,当我尝试使用lotus.domino.Database.getAllUnreadDocuments()时,它给了我以下异常

NotesException: Not implemented
at lotus.domino.cso.Base.notImplemented(Unknown Source)
at lotus.domino.cso.Document.markRead(Unknown Source)
at com.email.ReadEmailRemotely.readEmails(ReadEmailRemotely.java:428)
at com.email.ReadEmailRemotely.run(ReadEmailRemotely.java:96)
at java.lang.Thread.run(Unknown Source)

我的应用程序是 Eclipse 中使用 NCSO.jar 的普通 JAVA 应用程序

我的问题是,我需要扩展 lotus.domino.AgentBase 吗?

如果是,那么我需要什么所有依赖项,JAVA 应用程序不允许扩展它。& 如果没有,那么还有其他方法可以获取所有未读邮件吗?

4

4 回答 4

0

如果服务器支持 IMAP 或 POP3,您可以使用 JavaMail API,它非常简单,并且有一个未读邮件标志。

    Properties props = System.getProperties();
    props.setProperty("mail.store.protocol", "imaps");

    try {
            Session session = Session.getDefaultInstance(props, null);
            Store store = session.getStore("imaps");
            store.connect("myserver.com", "user", "pass");

            Folder inbox = store.getFolder("Inbox");
            inbox.open(Folder.READ_ONLY);

            FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
            Message messages[] = inbox.search(ft);
     }
于 2013-01-14T09:42:10.263 回答
0

一种简单的方法(假设您可以编辑 NSF)是创建一个隐藏视图,其中仅列出您想要返回的文档。

然后访问该视图并遍历它。

于 2013-01-14T13:43:42.460 回答
0

您将不得不改用 notes.jar 而不是 ncso.jar。

为了使用 notes.jar 并访问 getAllUnreadDocuments 方法,您需要在运行代码的系统上安装 Notes 和 Domino 8 或更高版本。

于 2013-01-14T16:33:56.617 回答
0

可能需要安全连接(SSL),使用以下属性连接支持 POP3 协议的邮件服务器:

        properties.put("mail.pop3.socketFactory.port", "POP3_PORT");
        properties.put("mail.pop3.host", "POP3_SERVER_HOST_NAME_OR_IP");
        properties.put("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        properties.put("mail.pop3.socketFactory.fallback", "false");
于 2014-01-31T07:31:08.603 回答