我在尝试设置已删除的标志时收到此错误;
Net::IMAP::NoResponseError (STORE attempt on READ-ONLY folder (Failure))
运行此程序时会引发错误;
connector.uid_store(item_uid, "+FLAGS", [:Deleted])
此代码在它之前运行良好;
connector.create("TestFolder") unless connector.list('', "TestFolder")
connector.uid_copy(item_uid, "TestFolder")
我一直无法找到原因,特别是因为我可以毫无问题地创建"文件夹"并将项目复制到其中。我正在使用 ruby 1.9.2、导轨 3.2.10、邮件 2.4.4
任何帮助都会真正拯救我的头脑。
干杯
~~~~~~~编辑邮件默认值设置如下;
#==> Collect items
case feed.url_type
when "IMAP"
puts "Trying IMAP retriever for " + feed.url_source
Mail.defaults do
retriever_method :imap,
:address => feed.url_source,
:port => 993,
:user_name => feed.user,
:password => feed.password,
:enable_ssl => true,
:read_only => false
end
self.add_email_stubs(Mail.find(), feed)
connector
是从这里取走的;
def add_email_stubs(items, feed)
Mail.all do |item, connector, item_uid|
并在此处使用(在相同的定义中);
#==> Move message
connector.create("Archive") unless connector.list('', "Archive")
connector.uid_copy(item_uid, "Archive")
connector.uid_store(item_uid, "+FLAGS", [:Deleted]) <==Error occurs here
已修复...我需要明确选择收件箱,然后它才允许我进行任何 STORE 更改。连接时,您不能依赖默认的收件箱,即使它看起来像您"在"收件箱中。
connector.uid_copy(item_uid, "Archive")
connector.select("INBOX") <== Need to explicitly select the INBOX
connector.uid_store(item_uid, "+FLAGS", [:Deleted])
对于像我这样的螺丝刀猴子来说,这很棘手,必须锻炼!! :)