0

POP3 JavaMail パッケージを使用して電子メール メッセージを取得しようとしています。JavaMail のドキュメントによると、IMAPFolder と POP3Folder の両方に getUID() メソッドがあります。ただし、コードは IMAP では正常に機能しますが、POP3 では機能しません。POP3 を使用すると、次のエラーが表示されます: undefined method ``getUID' for #<Java::ComSunMailPop3::POP3Message:0x66d7cba7>. 以下はコードです: server_messages = mbox.selectedfolder.getMessages() msgs_to_be_fetched = Array.new fetchprofile = javax.mail.FetchProfile.new() fetchprofile.add(javax.mail.UIDFolder::FetchProfileItem::UID) fetchprofile.add(javax.mail.FetchProfile::Item::FLAGS) mbox.selectedfolder.fetch(server_messages, fetchprofile) server_messages.each { |server_msg| next if server_msg.getFlags().contains(javax.mail.Flags::Flag::DELETED) uid = server_msg.getUID() msgs_to_be_fetched << server_msg unless msg_exists(uid) } unless server_messages.nil?

4

1 に答える 1

0

私は問題を解決しました。IMAP では message.getUID() を呼び出すだけですが、POP3 ではフォルダーを使用する必要があります。以下のコード: def getMessageUID(serverType,folder,msg) return (serverType == 'imap'? msg.getUID() : folder.getUID(msg)) end

于 2013-10-31T15:59:59.850 に答える