rpkamp / mailhog-client
PHP 邮件hog API 客户端
2.0.1
2024-03-02 14:52 UTC
Requires
- php: ^8.1
- ext-iconv: *
- ext-json: *
- php-http/client-implementation: ^1.0
- php-http/httplug: ^1.0 || ^2.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0 || ^2.0
Requires (Dev)
- doctrine/coding-standard: ^9.0
- egulias/email-validator: ^2.1.23
- nyholm/psr7: ^1.2
- pdepend/pdepend: ^2.5
- php-http/curl-client: ^2.0
- php-parallel-lint/php-parallel-lint: ^1.2
- phpmd/phpmd: ^2.9.1
- phpstan/phpstan: ^0.12.64
- phpunit/phpunit: ^10.0
- symfony/mailer: ^5.0
README
为 Mailhog 提供一个简单的 PHP (8.1+) 客户端。
设计目标
- 尽可能少的依赖
- 同时支持 Mailhog V1 API 和 Mailhog V2 API 的简单单一客户端
- 对所有端点进行集成测试,包括成功路径和失败路径
安装
此包不需要任何特定的 HTTP 客户端实现,而是基于 HTTPlug,因此您可以注入自己的 HTTP 客户端。因此,当您安装此库时,请确保您已经安装了 HTTP 客户端,或者与安装此库同时安装一个,否则安装将失败。
composer require rpkamp/mailhog-client <your-http-client-of-choice>
有关更多信息,请参阅 HTTPlug 用户的文档。
用法
<?php use rpkamp\Mailhog\MailhogClient; $client = new MailhogClient(new SomeHttpClient(), new SomeRequestFactory(), 'http://my.mailhog.host:port/');
其中 SomeHttpClient
是一个实现 HTTPlug 中 Http\Client\HttpClient
的类,SomeMessageFactory
是一个实现 HTTPlug 中 Http\Message\RequestFactory
的类,my.mailhog.host
是邮件hog运行的主机名(或 IP),port
是邮件hog API 运行的端口(默认 8025)。
运行测试
确保 Mailhog 已运行并运行
make test
运行 Mailhog 进行测试
您可以选择运行自己的 Mailhog 实例或使用提供的 Dockerfile 运行一个。要使用 Docker 运行 Mailhog,请确保您已安装 Docker 并运行
docker-compose up -d
Mailhog 测试端口
为了防止测试期间与其他 Mailhog 实例发生端口冲突,测试预期 Mailhog 将在端口 2025 上监听 SMTP(而不是默认的 1025),并在端口 9025 上监听 HTTP 流量(而不是默认的 8025)。
如果您想使用不同的端口,可以将 phpunit.xml.dist
复制到 phpunit.xml
并更改其中环境变量的端口号。