thefox / imapd
纯PHP编写的IMAP服务器(库)。
v0.5.0
2017-06-15 07:44 UTC
Requires
- php: ^7.0
- liip/process-manager: ^1.0
- psr/log: ^1.0
- symfony/filesystem: ^2.5 || ^3.3
- symfony/options-resolver: ^3.3
- thefox/logic: ^1.0
- thefox/network: ^1.0
- thefox/storage: ^0.1
- zendframework/zend-mail: ^2.3
Requires (Dev)
- monolog/monolog: ^1.22
- phpstan/phpstan: ^0.7
- phpunit/phpunit: ^6.2
- symfony/finder: ^3.3
- thefox/utilities: ^1.1
README
纯PHP编写的IMAP服务器(库),用于为电子邮件客户端提供电子邮件。
在 SMTPd
中的 d
代表 守护进程。此脚本可以像任何其他守护进程进程一样在后台运行。它不适合作为Web应用程序运行。
为什么选择这个项目?
信或不信,电子邮件仍然是互联网的杀手特性。有很多项目可以访问和从IMAP/POP3服务器获取电子邮件。但是,提供程序化接口以将电子邮件提供给电子邮件客户端的项目并不多。
使用此接口,您可以为您的应用程序用户做以下事情
+--------------+ +-------+ +------------------------+ +------+
| Your PHP App +---> | IMAPd +---> | MUA (like Thunderbird) +---> | User |
+--------------+ +-------+ +------------------------+ +------+
当您有一个用PHP编写的消息应用程序但没有图形用户界面时,这很有用。因此,您的图形用户界面可以是任何 电子邮件客户端。例如 Thunderbird。
项目概述
该项目概述如我在关于 开源软件合作 的博客文章中所描述。
- 此软件的主要目的是为PHP脚本提供服务器端IMAP API。
- 尽管RFC实现尚未完成,但它们必须是严格的。
- 未来可能会有更多功能。从协议的角度来看,这些功能必须是RFC实现。
- 此列表是开放的。请随时提出功能请求。
计划中的功能
- 完整的RFC 3501实现。
- 用更好的解决方案替换
Zend\Mail
。
安装
首选的安装方法是使用 Packagist 和 Composer。运行以下命令安装包并将其添加到 composer.json 的要求中
composer require thefox/imapd
用法
有关更多信息,请参阅 example.php
文件。
RFC 3501实现
完整实现
- 6.1.2 NOOP命令
- 6.1.3 LOGOUT命令
- 6.4.1 CHECK命令
- 6.4.7 COPY命令
- 7.1.1 OK响应
- 7.1.2 NO响应
- 7.1.3 BAD响应
- 7.1.5 BYE响应
- 7.4.1 EXPUNGE响应
不完整实现
- 2.3.1.1 唯一标识符(UID)消息属性
- 2.3.1.2 消息序列号消息属性
- 2.3.2 标志消息属性
- 6.1.1 CAPABILITY命令
- 6.2.2 AUTHENTICATE命令
- 6.2.3 LOGIN命令
- 6.3.1 SELECT命令
- 6.3.6 SUBSCRIBE命令
- 6.3.7 UNSUBSCRIBE命令
- 6.3.8 LIST命令
- 6.3.9 LSUB命令
- 6.3.11 APPEND命令
- 6.4.2 CLOSE命令
- 6.4.4 SEARCH命令
- 6.4.5 FETCH命令
- 6.4.6 STORE命令
- 6.4.8 UID命令
- 7.1.4 PREAUTH响应
- 7.2.1 CAPABILITY响应
- 7.2.2 LIST响应
- 7.2.3 LSUB响应
- 7.2.5 SEARCH响应
- 7.3.1 EXISTS响应
- 7.3.2 RECENT响应
- 7.4.2 FETCH响应
待办事项
- 一些任务带有注释
NOT_IMPLEMENTED
。实现这些。 @TODO
在发布新版本之前需要完成 PHP 代码规范测试。
关于 Zend\Mail
的替代方案
- exorus/php-mime-mail-parser(需要 ext-mailparse PHP 扩展)