Jruby JavaMail未定义方法getUID

时间:2013-10-31 12:20:35

标签: jruby javamail

我正在尝试使用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?

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。使用IMAP我可以调用message.getUID()但是使用POP3我必须使用该文件夹。代码如下: def getMessageUID(serverType,folder,msg) return (serverType == 'imap'? msg.getUID() : folder.getUID(msg)) end