PHP Conference Japan 2024

imap_rfc822_parse_headers

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_rfc822_parse_headers解析字符串中的邮件头

描述

imap_rfc822_parse_headers(字符串 $headers, 字符串 $default_hostname = "UNKNOWN"): stdClass

获取一个包含各种邮件头元素的对象,类似于 imap_header()

参数

headers

已解析的邮件头数据

default_hostname

默认主机名

返回值

返回一个类似于 imap_header() 返回的对象,但 flags 和来自 IMAP 服务器的其他属性除外。

参见

添加注释

用户贡献的注释 4 条注释

Kevin Casper <casperke at gmail dot com>
19 年前
我正在稍微探测这个函数的行为。

它处理 rfc882 字段

日期
主题
消息 ID
收件人
发件人
回复地址
发件人 - 如果不存在,则使用“发件人”字段生成
标题
引用
回复
抄送

不处理 rfc882 字段
返回路径
接收
转发 - 我认为此字段可能已过时
关键词

如果函数还有其他 rfc822 字段或行为,那么我无法说明,因为我的测试中没有这些字段。
由于这与我目前正在做的事情相关,因此我可能会不时添加更多关于此函数的信息。
Marco Arment
14 年前
如果传递给它的文本在内部溢出一个 16 KB 的缓冲区(源代码中的 SENDBUFLEN),则此函数将导致 PHP 严重错误。

我还没有深入研究,但是将输入文本限制在小于 16,384 个字符的情况下,我们的服务器上仍然出现了一个错误情况,但将边界减少到 12,000 就解决了。

大多数现实世界的邮件头远小于 4 KB。
phrank
15 年前
此函数被 c-client 库标记为内部函数,不应由 php 直接使用。

请注意,结果将始终包含邮件中未设置的字段。例如,即使邮件中没有定义 Reply-To 和 Sender 标题字段,reply_to 和 sender 也将始终被设置。
Sven dot Dickert at planb dot de
22 年前
从 imap_rfc822_parse_headers 获取的对象与从 imap_headerinfo/imap_header 获取的对象在以下几点有所不同。您将无法获得
* 标记
* 消息编号
* 大小
* 邮件日期
* 更新日期
* 获取发件人
* 获取主题

更新日期可以使用以下方式模拟
$headerobj=imap_rfc822_parse_headers ($header);
$udate=strtotime($headerobj->date);
To Top