PHP IMAP 检索 To 地址中的所有收件人

标签 php imap gmail-imap

使用 PHP IMAP,我可以从 gmail 下载我所有的邮件附件等。但是当收件人地址中有多个收件人时,我只会得到一个地址。让我更清楚地解释一下。

假设我有一个电子邮件地址 example@gmail.com,我从那里下载所有邮件。现在,当 test@gmail.com 向我发送电子邮件时,我使用函数 imap_headerinfo 在 toaddress 中获取 example@gmail.com。但是当 test@gmail.com 将邮件发送到 example@gmail.com 和 example_1@gmail.com 时,我没有在 toaddress 或 reply_toaddress 或 cc 等中得到这个 example_1@gmail.com。下面是我的消息示例输出

$header = imap_headerinfo($mbox, $msgno);


stdClass Object
(
  [date] => Tue, 10 Sep 2013 13:37:49 +0530
  [Date] => Tue, 10 Sep 2013 13:37:49 +0530
  [subject] => reply all test
  [Subject] => reply all test
  [message_id] => <CACYeE9OEr+9z-Q5BR69sC=nJR_qQps69-VKWxkL6j2hqKEBo2w@mail.gmail.com>
  [toaddress] => example@gmail.com
  [to] => Array
    (
        [0] => stdClass Object
            (
                [mailbox] => example
                [host] => gmail.com
            )

    )

  [fromaddress] => Test <test@gmail.com>
  [from] => Array
    (
        [0] => stdClass Object
            (
                [personal] => Test
                [mailbox] => test
                [host] => gmail.com
            )

    )

  [reply_toaddress] => Test <test@gmail.com>
  [reply_to] => Array
    (
        [0] => stdClass Object
            (
                [personal] => Test
                [mailbox] => test
                [host] => gmail.com
            )

    )

  [senderaddress] => Test <test@gmail.com>
  [sender] => Array
    (
        [0] => stdClass Object
            (
                [personal] => Test
                [mailbox] => test
                [host] => gmail.com
            )

    )

  [Recent] =>  
  [Unseen] => U
  [Flagged] =>  
  [Answered] =>  
  [Deleted] =>  
  [Draft] =>  
  [Msgno] => 34463
  [MailDate] => 10-Sep-2013 08:07:00 +0000
  [Size] => 2609
  [udate] => 1378800420
)

我想要所有收件人的地址,以便我可以在回复中使用它们。

当我点击全部回复时,我可以清楚地看到 outlook、thunderbird 等电子邮件客户端中的所有收件人地址 (AS Cc)。

最佳答案

终于找到我的答案所以想到分享。尽管 imap_headerinfo 在 To 地址中提供了多个收件人,正如@Kelu 所回答的那样,但是当与 imap_fetch_overview 一起使用时,它只提供了一个地址。我使用 imap_fetch_overview 获取消息编号,然后使用 imap_headerinfo 获取该消息的所有标题信息。这是给一个单一的收件人地址。

经过大量搜索后,答案仅在 php.net 站点中 http://www.php.net/manual/en/function.imap-headerinfo.php#98809

使用 imap_rfc822_parse_headers 和 imap_fetchheader 进行测试,它工作正常。

关于PHP IMAP 检索 To 地址中的所有收件人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18715440/

相关文章:

java mail - 通过邮件 ID 获取邮件

php - DIV 的自动更新不起作用

java - 好的java webmail应用程序

python - 如何使用 Python 通过 IMAP 获取未读消息并设置消息读取标志?

C# ActiveUp Mail 无法获取邮件

主题的 Javamail IMAP 搜索失败

php - 如何在imap中使用UID回复特定电子邮件在php中获取电子邮件

php - 更改时区而不更改 DateTime 对象的值

JavaScript 代码未正确检查 ajax 请求

php - 使用多个 LIKE 条件搜索查询无法按预期工作