在邮箱中查找邮件
你可以使用 imap_headers 返回邮箱中所有邮件的列表。
<?php
$headers = imap_headers($mailbox);
结果是具有以下模式的字符串数组:
[FLAG] [MESSAGE-ID])[DD-MM-YYY] [FROM ADDRESS] [SUBJECT TRUNCATED TO 25 CHAR] ([SIZE] chars)
以下是每行的外观示例:
A 1)19-Aug-2016 someone@example.com Message Subject (1728 chars)
D 2)19-Aug-2016 someone@example.com RE: Message Subject (22840 chars)
U 3)19-Aug-2016 someone@example.com RE: RE: Message Subject (1876 chars)
N 4)19-Aug-2016 someone@example.com RE: RE: RE: Message Subje (1741 chars)
符号 | 标志 | 含义 |
---|---|---|
一个 | 回答 | 消息已被回复 |
d |
删除 | 邮件已删除(但未删除) |
F |
标记 | 消息被标记/盯着注意 |
ñ | 新 | 消息是新的,尚未见过 |
[R | 最近 | 消息是新的,已被看到 |
U |
未读 | 消息尚未阅读 |
X |
草案 | 消息是草稿 |
请注意,此调用可能需要相当长的时间才能运行,并且可能会返回一个非常大的列表
另一种方法是根据需要加载单个邮件。你的每封电子邮件都会分配一个 ID,从 1(最旧)到 imap_num_msg($mailbox)
的值。
有许多函数可以直接访问电子邮件,但最简单的方法是使用 imap_header
返回结构化的头信息:
<?php
$header = imap_headerinfo($mailbox , 1);
stdClass Object
(
[date] => Wed, 19 Oct 2011 17:34:52 +0000
[subject] => Message Subject
[message_id] => <04b80ceedac8e74$51a8d50dd$0206600a@user1687763490>
[references] => <ec129beef8a113c941ad68bdaae9@example.com>
[toaddress] => Some One Else <someoneelse@example.com>
[to] => Array
(
[0] => stdClass Object
(
[personal] => Some One Else
[mailbox] => someonelse
[host] => example.com
)
)
[fromaddress] => Some One <someone@example.com>
[from] => Array
(
[0] => stdClass Object
(
[personal] => Some One
[mailbox] => someone
[host] => example.com
)
)
[reply_toaddress] => Some One <someone@example.com>
[reply_to] => Array
(
[0] => stdClass Object
(
[personal] => Some One
[mailbox] => someone
[host] => example.com
)
)
[senderaddress] => Some One <someone@example.com>
[sender] => Array
(
[0] => stdClass Object
(
[personal] => Some One
[mailbox] => someone
[host] => example.com
)
)
[Recent] =>
[Unseen] =>
[Flagged] =>
[Answered] =>
[Deleted] =>
[Draft] =>
[Msgno] => 1
[MailDate] => 19-Oct-2011 17:34:48 +0000
[Size] => 1728
[udate] => 1319038488
)