neurohotep / mailgun-php
Mailgun SDK 提供了所有 API 函数的方法。
Requires
- php: ^7.1
- php-http/client-common: ^1.9 || ^2.0
- php-http/discovery: ^1.6
- php-http/multipart-stream-builder: ^1.0
- psr/http-client: ^1.0
- webmozart/assert: ^1.2
Requires (Dev)
- nyholm/nsa: ^1.1
- nyholm/psr7: ^1.0
- php-http/guzzle6-adapter: ^1.0
- phpunit/phpunit: ^7.5
Suggests
- guzzlehttp/psr7: PSR-7 message implementation that also provides common utility methods
- php-http/curl-client: cURL client for PHP-HTTP
This package is not auto-updated.
Last update: 2024-09-18 09:02:52 UTC
README
这是 Mailgun PHP SDK。此 SDK 包含与 Mailgun API 交互的方法。以下是一些入门示例。有关更多示例,请参阅我们的官方文档:http://documentation.mailgun.com
安装
要安装 SDK,您需要在项目中使用 Composer。如果您还没有使用 Composer,它非常简单!以下是安装 composer 的方法
curl -sS https://getcomposer.org/installer | php
Mailgun API 客户端不与 Guzzle 或任何其他发送 HTTP 消息的库紧密耦合。它使用 PSR-18 客户端抽象。这将为您提供选择要使用的 PSR-7 实现和 HTTP 客户端的灵活性。
如果您想快速开始,应运行以下命令
composer require mailgun/mailgun-php kriswallsmith/buzz nyholm/psr7
使用方法
您应该在应用程序中使用 Composer 的自动加载器自动加载依赖项。以下所有示例都假设您已经将其包含在文件中
require 'vendor/autoload.php'; use Mailgun\Mailgun;
以下是使用 SDK 发送消息的示例
// First, instantiate the SDK with your API credentials $mg = Mailgun::create('key-example'); // For US servers $mg = Mailgun::create('key-example', 'https://api.eu.mailgun.net'); // For EU servers // Now, compose and send your message. // $mg->messages()->send($domain, $params); $mg->messages()->send('example.com', [ 'from' => 'bob@example.com', 'to' => 'sally@example.com', 'subject' => 'The PHP SDK is awesome!', 'text' => 'It is so simple to send a message.' ]);
注意:$domain
必须与您在 app.mailgun.com 上配置的域名匹配。
所有使用示例
您可以在 /doc 和 https://documentation.mailgun.com 上找到更多详细文档。
响应
API 调用的默认结果是域名对象。这将使您在不阅读文档的情况下轻松理解响应。只需阅读响应类的文档块即可。这提供了出色的 IDE 集成。
$mg = Mailgun::create('key-example'); $dns = $mg->domains()->show('example.com')->getInboundDNSRecords(); foreach ($dns as $record) { echo $record->getType(); }
如果您希望使用数组而不是对象,可以向 Mailgun 类注入 ArrayHydrator
。
use Mailgun\Hydrator\ArrayHydrator; $configurator = new HttpClientConfigurator(); $configurator->setApiKey('key-example'); $mg = Mailgun::configure($configurator, new ArrayHydrator()); $data = $mg->domains()->show('example.com'); foreach ($data['receiving_dns_records'] as $record) { echo isset($record['record_type']) ? $record['record_type'] : null; }
您还可以使用 NoopHydrator
从 API 调用中获得 PSR7 Response。
警告:使用 NoopHydrator
时,在非 200 响应上不会抛出异常。
调试
当事情不太对劲时,调试 PHP SDK 非常有帮助。要调试 SDK,以下是一些建议
将端点设置为 Mailgun 的 Postbin。Postbin 是一种允许您发布数据并通过浏览器显示的 Web 服务。这允许您快速确定实际上被发送到 Mailgun API 的内容。
步骤 1 - 创建一个新的 Postbin。
前往 http://bin.mailgun.net。Postbin 将生成一个特殊的 URL。保存该 URL。
步骤 2 - 使用 Postbin 实例化 Mailgun 客户端。
提示:bin id 将是 URL 中的 bin.mailgun.net 部分之后的部分。它将是随机生成的字母和数字。例如,此 URL 中的 bin id,http://bin.mailgun.net/aecf68de,是 "aecf68de"。
$configurator = new HttpClientConfigurator(); $configurator->setEndpoint('http://bin.mailgun.net/aecf68de'); $configurator->setDebug(true); $mg = Mailgun::configure($configurator); # Now, compose and send your message. $mg->messages()->send('example.com', [ 'from' => 'bob@example.com', 'to' => 'sally@example.com', 'subject' => 'The PHP SDK is awesome!', 'text' => 'It is so simple to send a message.' ]);
附加信息
有关每个 API 端点的使用示例,请参阅我们的官方文档页面。
此 SDK 包括 消息构建器、批量消息 和 同意处理程序 组件。
消息构建器允许您通过调用每个参数的方法来快速创建发送消息所需的一组参数。批量消息是消息构建器的扩展,允许您在几秒钟内轻松发送批量消息任务。批量消息的复杂性已被消除!
框架集成
如果您正在使用框架,您可能需要考虑这些composer包以简化框架集成。
- tehplague/swiftmailer-mailgun-bundle 用于 Symfony
- Bogardo/Mailgun 用于 Laravel
- katanyoo/yii2-mailgun-mailer 用于 Yii2
- narendravaghela/cakephp-mailgun 用于 CakePHP
- drupal/mailgun 用于 Drupal
贡献
我们目前正在构建一个新的面向对象的API客户端。请随时以任何方式贡献。例如,您可以
- 尝试运行 dev-master 代码
- 如果有问题,请创建问题
- 回复其他人的问题
- 审查PR
运行测试代码
如果您想运行测试,应该运行以下命令
git clone git@github.com:mailgun/mailgun-php.git
cd mailgun-php
composer update
composer test
支持和反馈
请务必访问Mailgun官方文档网站获取有关我们API的更多信息。
如果您发现了一个错误,请在Github上直接提交问题。Mailgun-PHP 问题
一如既往,如果您需要额外帮助,请通过https://app.mailgun.com/app/support/list上的账户给我们留言。