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)

私のアプリケーションは、NCSO.jar を使用した eclipse のプレーンな 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

ncso.jar の代わりに notes.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 に答える