craftcodery / clicksend
Laravel 的 ClickSend 集成
4.0.0
2023-03-07 05:01 UTC
Requires
- php: ^8.1
- ext-json: *
- barryvdh/laravel-dompdf: ^2.0
- guzzlehttp/guzzle: ^7.0.1
- illuminate/http: ^10.0
- illuminate/support: ^10.0
Requires (Dev)
- roave/security-advisories: dev-master
README
此包简化了通过 ClickSend 在 Laravel 应用中发送信件和明信片的过程。
安装
您可以通过 composer 安装此包
composer require craftcodery/clicksend
准备数据库
您必须发布和运行迁移
php artisan vendor:publish --provider="CraftCodery\ClickSend\ClickSendServiceProvider" --tag="migrations" php artisan migrate
发布配置文件
您可以使用以下命令发布配置文件:
php artisan vendor:publish --provider="CraftCodery\ClickSend\ClickSendServiceProvider" --tag="config"
发布配置文件允许您自定义用于设置 ClickSend 用户名和 API 密钥的环境变量。
配置使用
首先设置 ClickSend 用户名和 API 密钥的环境变量。默认情况下,包会查找 CLICKSEND_USERNAME
和 CLICKSEND_KEY
。
任何您希望能够接收邮件的模型都需要使用 CraftCodery\ClickSend\Traits\CanReceiveMailers
。该特质只需要一个方法,即 mailerRecipientAddress
,它返回一个格式化的地址信息数组。下面是所需数组结构的示例。
/** * Get the recipient's address for ClickSend mailers. * * @return array */ public function mailerRecipientAddress() { return [ 'address_name' => $this->name, 'address_line_1' => $this->address, 'address_line_2' => $this->address_2, 'address_city' => $this->city, 'address_state' => $this->state, 'address_postal_code' => $this->postal_code, 'address_country' => $this->country, ]; }
类似地,任何您希望能够发送邮件的模型都需要使用 CraftCodery\ClickSend\Traits\CanSendMailers
。该特质只需要一个方法,即 mailerReturnAddress
,它返回一个格式化的回邮地址信息数组。下面是所需数组结构的示例。
/** * Get the sender's return address for ClickSend mailers. * * @return array */ public function mailerReturnAddress() { return [ 'address_name' => $this->name, 'address_line_1' => $this->address, 'address_line_2' => $this->address_2, 'address_city' => $this->city, 'address_state' => $this->state, 'address_postal_code' => $this->postal_code, 'address_country' => $this->country, ]; }
发送项目
sendLetterTo
和 sentPostcardTo
方法对使用 CanSendMailers
特质的任何模型都可用。
每个方法都需要一个接收模型(使用 CanReceiveMailers
特质)作为第一个参数。信件需要内容作为第二个参数,而明信片需要 PDF URL 作为第二个参数,内容作为第三个参数。
明信片方法中作为第二个参数使用的 PDF 将被发送在明信片的正面。内容将被发送在背面。
$user->sendLetterTo($recipient, 'This is the content of the letter.'); $user->sendPostcardTo($recipient, 'https://example.com/postcard-image.pdf', 'This is the content on the rear of the postcard.');
许可证
MIT 许可证(MIT)。请参阅 许可证文件 了解更多信息。