【问题标题】:mailbox always empty when checking emails via imap通过 imap 检查电子邮件时邮箱总是空的
【发布时间】:2015-12-03 22:39:48
【问题描述】:

我们的平台会定期检查我们的一些客户邮箱以寻找已回复的电子邮件,到目前为止它运行良好,但我们最近遇到了一个奇怪的问题。

当我连接到 IMAP 服务器并在给定时间段内搜索电子邮件(例如昨天的所有邮件)时,我只得到一个空列表。但是当我在其邮箱上与客户核对时,我可以看到昨天收到的邮件。她的邮件客户端被配置为使用 POP,所以我要求她更改为 IMAP,因为 POP 应该从邮件服务器中删除电子邮件。现在她正在使用 IMAP,但我仍然在邮件服务器上看不到任何内容。

要连接到 IMAP 服务器,我正在使用这些说明:

imap = Net::IMAP.new(server, port, ssl, nil, false) # OK
imap.login(login, pwd) # Authentification Successful
imap.select("INBOX") # Mailbox is OK

要查找昨天的电子邮件,我使用的是这些条件:

imap.search(["SEEN","SINCE","Sep-07-2015"]
imap.search(["SEEN","SINCE","Sep-07-2015"]

我什至试图查看其他邮箱以防她的邮件没有到达收件箱,我已经用 imap.list('', '') 列出了她的邮箱,即使这样我也不能找到任何邮件。感觉她的整个邮箱在服务器上都是空的。但是我可以在邮件客户端上看到她的电子邮件。

我在这个案子上不知所措,想知道是否有人知道会发生什么阻止我通过 IMAP 发现任何电子邮件?

【问题讨论】:

    标签: ruby-on-rails ruby email imap


    【解决方案1】:

    您的日期格式似乎不正确:它应该类似于8-Aug-2002 而不是Aug-8-2002。查看here 以获取其他选项。如果这没有帮助,请尝试使用更广泛的标准进行更简单的搜索,例如 imap.search(['SUBJECT', 'hello']) 并使用一些真实主题而不是 helloThis article 也可能有所帮助。 干杯!

    【讨论】:

    • 其实我错了,我的系统确实使用 Aug-8-2002 格式日期,只是我绝望并尝试了其他方法并忘记粘贴正确的格式。我确实尝试了一个更简单的搜索条件,比如主题,但仍然没有结果:(谢谢你的链接。
    【解决方案2】:

    你可以在 php 中使用这个语法,例如 yahoo

    $inbox='{imap.mail.yahoo.com:993/imap/ssl/novalidate-cert}Inbox';
    $mbox = imap_open($inbox,$username,$password);
    imap_search($mbox, 'SINCE "'.date('d M Y',strtotime("-1 days")).'"');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 2012-04-13
      • 2021-07-10
      • 1970-01-01
      • 1970-01-01
      • 2017-04-17
      相关资源
      最近更新 更多