1

削除フラグを設定しようとすると、このエラーが発生します。

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|

ここで使用されます(同じ定義で)。

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

1 に答える 1

1

修正済み... STORE の変更を行う前に、INBOX を明示的に選択する必要がありました。INBOX に「入っている」ように見えても、接続時に INBOX にデフォルト設定することに依存することはできません。

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

私のようなスクリュードライバーモンキーが運動しなければならないのは難しいです!! :)

于 2013-02-05T03:29:35.250 に答える