【问题标题】:Pulling in email via IMAP to rails application通过 IMAP 将电子邮件拉入到 rails 应用程序
【发布时间】:2011-08-21 04:52:49
【问题描述】:

我正在使用 Net::IMAP 通过 imap 将电子邮件拉入我的应用程序,并将邮件复制到所有邮件文件夹中,然后在收件箱中将其标记为已删除。

这会在所有电子邮件文件夹中为用户启用所有电子邮件的备份,并且我的应用仅从收件箱中提取未标记为已删除的电子邮件。

这适用于 gmail,但我正在尝试为 horde webmail 这样做。

我成功提取了电子邮件,但似乎无法将它们标记为已删除并将它们复制到另一个文件夹。

这是我在 gmail 中执行此操作的代码:

imap.uid_copy(uid, "[Gmail]/All Mail")
imap.uid_store(uid, "+FLAGS", [:Deleted])

有人帮忙吗?部落网络邮件的“[Gmail]/所有邮件”应该更改为什么?这对于所有电子邮件(如 hotmail / yahoo 等)是否有所不同?

对此的任何帮助都会很棒。 谢谢

瑞克

【问题讨论】:

  • Horde webmail 没有默认存档文件夹,因此您可能应该在第一次尝试存档电子邮件时创建一个,然后将其余所有内容复制到那里。删除电子邮件的代码应该没问题。您是否收到任何 IMAP 服务器错误?
  • 嗨,尤金,感谢您迄今为止的帮助。尝试创建邮箱时出现 Permission denied 错误?
  • 不允许创建新邮箱,但应该允许创建新的邮件文件夹。你能发布你正在使用的确切代码和你收到的确切错误消息吗?
  • @eugen this is my code begin # 创建邮箱,除非它已经存在 imap.create('mailbox') unless imap.list('', 'mailbox') rescue Net::IMAP: :NoResponseError => 错误将“错误---:#{error.message}”结束
  • 我得到的错误只是权限被拒绝!有任何想法吗 ??非常感谢

标签: ruby-on-rails ruby ruby-on-rails-3 email imap


【解决方案1】:

你可以试试这个吗?

      connection.store( uid , "+FLAGS", [:DELETED]) 
      ...
      connection.expunge()

例如“store”而不是“uid_store”?

我没有使用 Horde,但上面的行对我来说适用于多个 IMAP 服务器。

还要确保在您将邮件标记为要删除的邮箱上调用 connection.expunge..!

例如查看#expunge 的net/imap API: http://www.ruby-doc.org/stdlib/libdoc/net/imap/rdoc/classes/Net/IMAP.html#M001441

【讨论】:

    猜你喜欢
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 2012-04-19
    • 1970-01-01
    • 2011-05-25
    相关资源
    最近更新 更多