xedi / sendgrid
SendGrid PHP 库
2.0.3
2022-03-24 13:18 UTC
Requires
- php: ^7.1.3
- guzzlehttp/guzzle: ^6.3|^7
- illuminate/support: >=5
- symfony/http-foundation: ^5.0
Requires (Dev)
- mockery/mockery: ^1.2
- phpunit/phpunit: ^7.5
- squizlabs/php_codesniffer: ^3.4
README
目录
安装
先决条件
- PHP 7.1+
- 需要 SendGrid 账户和 API 密钥
安装包
将 XEDI SendGrid 添加到您的 composer.json
文件中,手动或使用 composer require
命令。
{ "require": { "xedi/sendgrid": "^1" } }
composer require xedi/sendgrid
我们建议使用后者,让 composer 来完成它的工作
快速开始
<?php require 'vendor/autoload.php'; use Xedi\SendGrid\Contracts\Exception as SendGridException; use Xedi\SendGrid\SendGrid; SendGrid::setClient( SendGrid::getApiClient($api_key) ); ($mailable = SendGrid::prepareMail()) ->setSender('you@email.com', 'Joe Blogs') ->setSubject('Checkout XEDI\'s SendGrid library!') ->addTextContent('Hey,\n\rI found this great SendGrid library!') ->addHtmlContent('<body>Hey,<br/>I found this great SendGrid library!</body>') ->addRecipient('john.smith@email.com', 'John Smith'); try { SendGrid::send($mailable); } catch (SendGridException $exception) { echo 'Caught exception: ' . (string) $exception; }
关于
此库使用 SendGrid v3 HTTP API。它基于“官方”库的一些限制,例如
- 直接与 cURL 交互,限制您在测试期间拦截请求的能力。
- 异常不针对返回的错误。
我们使用 GuzzleHttp 作为我们的 cURL 包装器,将处理 HTTP 请求的责任卸载。Guzzle 6 提供了拦截通过其客户端发出的 HTTP 请求的出色工具;有关更多信息 点击这里。
如果您的有效负载有问题,SendGrid 仅返回一个错误代码!这是因为 SendGrid 的 API 不是 RESTful。我们的库将尝试提供上下文异常,例如 Xedi\SendGrid\Exceptions\Domain\SubjectException
,如果 SendGrid 报告您的主件字段有问题,则会抛出该异常。
所有异常都可以使用我们实现的 ExceptionContract
来识别。
功能请求
此库是为内部项目开发的,其功能将随着我们需求的变化而增长。 然而,如果您发现我们不支持的任何内容,请通过 GitHub 问题提出。
安全漏洞
我们非常重视安全问题。如果您发现任何问题,请通过电子邮件发送给我们 development@xedi.com。