编程

PHP 8.4: IMAP 扩展从 PHP 核心移到 PECL

236 2024-02-26 23:17:00

PHP 的 IMAP 扩展提供了使用 IMAP 协议操作邮箱的功能。该扩展所依赖的底层的 C 库自 2018 年开始没有接收到新的更新。

IMAP 扩展也出现一些其他问题:

  • 缺乏线程安全。PHP-ZTS 编译无法编译此扩展。
  • 缺乏 XAUTH 授权支持。
  • POP 功能的 Bug.

自 PHP 8.4,IMAP 扩展不再是 PHP 核心的部件,被移到 PECL。IMAP 扩展仍然可以从 PECL 中进行安装,但考虑到扩展的已知问题,建议转移到下面列出的替代库。

PHP 8.4 不再支持 --with-imap--with-imap-ssl 配置标志。将其传递到 ./configure 脚本将产生警告:

configure: WARNING: unrecognized options: --with-imap
configure: WARNING: unrecognized options: --with-imap-ssl

IMAP 扩展的替代方案

考虑到 IMAP 扩展的问题性质,不建议使用 IMAP 扩展。需要简单升级路径的现有/遗留 PHP 应用仍然可以从 PECL 安装 IMAP 扩展。

Webklex/php-imap 是 imap 协议的 php 实现,带有 OOP API,可能是 imap 扩展的更可行的替代品。