无法设置:使用rails mail gem在GMail Inbox上的DELETE标志

时间:2013-02-04 09:24:20

标签: ruby-on-rails gmail-imap mail-gem

尝试设置已删除的标志时出现此错误;

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,rails 3.2.10,mail 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|

并在这里使用(在相同的def中);

  #==> 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

1 个答案:

答案 0 :(得分:1)

...固定 我需要明确选择INBOX才能允许我进行任何STORE更改。 连接时你不能依赖默认的INBOX,即使它看起来像你在'INBOX'。

connector.uid_copy(item_uid, "Archive")
connector.select("INBOX")   <== Need to explicitly select the INBOX
connector.uid_store(item_uid, "+FLAGS", [:Deleted])

对于像我这样的螺丝刀猴子来说,必须要解决这个问题! :)