我是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)
我的应用程序是使用NCSO.jar
在eclipse中的普通JAVA应用程序我的问题是,我是否需要扩展lotus.domino.AgentBase?
如果是,那么我需要的所有依赖项,JAVA应用程序不允许扩展它。 &安培;如果没有那么有没有其他方法来获取所有未读邮件?
答案 0 :(得分: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);
}
答案 1 :(得分:0)
一种简单的方法(假设您可以编辑NSF)是创建一个隐藏视图,该视图仅列出您想要返回的文档。
然后访问该视图并迭代它。
答案 2 :(得分:0)
您必须切换到使用notes.jar而不是ncso.jar。
为了使用notes.jar并访问getAllUnreadDocuments方法,您需要在运行代码的系统上安装Notes和Domino 8或更高版本。
答案 3 :(得分: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");