【问题标题】:How to fetch a GMail message using GMail URL Hash in Zend Framework如何在 Zend 框架中使用 GMail URL Hash 获取 GMail 消息
【发布时间】:2012-05-08 11:44:58
【问题描述】:

我正在使用 Zend Framework 来获取 GMail 消息。 我已经能够使用以下代码使用 zend 框架对所有消息进行身份验证和获取:

$storage = new Zend_Mail_Storage_Imap($imap);

for ($i = 1; $i <= $storage->countMessages() && $i <=10; $i++ ){ 
    echo htmlentities($storage->getMessage($i)->subject);
    echo $storage->getMessage($i)->getContent();
}

但我想使用我们阅读邮件时通常出现在 GMail URL 中的哈希来获取邮件。例如在以下网址中:

https://mail.google.com/mail/?shva=1#inbox/137261701dcae0a6 最后一个斜杠之后的部分是哈希 (137261701dcae0a6) 我想它是十六进制的。 如何使用 Zend Framework 使用此哈希来获取消息?请帮忙。

【问题讨论】:

    标签: zend-framework imap gmail-imap


    【解决方案1】:

    您提供的 Google 链接 (https://mail.google.com/mail/?shva=1#inbox/137261701dcae0a6) 指向整个对话(整个话题)。

    137261701dcae0a6 是 Gmail 的十六进制线程 ID。

    可以使用 X-GM-THRID Gmail 的 IMAP 扩展来搜索此线程中的邮件。

    我不了解 Zend,所以无法帮你写代码,但是 IMAP 通信如下:

    C: 20eeec4bb07a44be UID SEARCH X-GM-THRID 1401511523692802395
    S: * SEARCH 13622
    S: 20eeec4bb07a44be OK SEARCH completed (Success)
    

    【讨论】:

    • 我在执行身份验证后立即尝试了您的解决方案,但从服务器返回的响应是 “Bad Search Not allowed now”。我可以使用 Zend Framework API 使用 XLIST 命令,但我无法执行搜索。我还在 Gmail 的 IMap 文档中读到他们使用他们的自定义 IMAP 扩展。如何在通用 IMAP API 中使用这些自定义 imap 扩展,它们是否与我正在尝试做的事情相关。您还需要澄清一件事,您在 imap 命令前添加的“20eeec4bb07a44be”字符串是什么。
    • 你先选好文件夹了吗?
    • 20eeec4bb07a44be 是一个随机命令 id,IMAP 需要它
    • 谢谢@pawel-lesnikowski,没有选择文件夹是问题所在。现在得到纠正:) 也感谢你澄清随机命令 id
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-14
    • 2016-03-18
    • 2016-09-21
    • 2015-01-11
    • 2014-07-16
    • 1970-01-01
    • 2015-01-26
    相关资源
    最近更新 更多