dansmaculotte / laravel-mail-template
一个用于发送电子邮件的邮件模板驱动程序
v4.0.1
2022-11-18 14:40 UTC
Requires
- php: ^8.1
- ext-json: *
- illuminate/notifications: ^9.0
- illuminate/support: ^9.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.7
- kriswallsmith/buzz: ^1.0
- larapack/dd: ^1.1
- mailchimp/transactional: ^1.0
- mailgun/mailgun-php: ^3.5
- mailjet/mailjet-apiv3-php: ^1.4
- mockery/mockery: ^1.3
- nyholm/psr7: ^1.1
- orchestra/testbench: ^7.1
- phpunit/phpunit: ^9.1
- sendgrid/sendgrid: ^7.3
- sendinblue/api-v3-sdk: ^8.1.0
Suggests
- mailchimp/transactional: Required for sending emails via Mandrill (Mailchimp)
- mailgun/mailgun-php: Required for sending emails via Mailgun
- mailjet/mailjet-apiv3-php: Required for sending emails via Mailjet
- sendgrid/sendgrid: Required for sending emails via Sendgrid
- sendinblue/api-v3-sdk: Required for send emails via Sendinblue
README
此包允许您通过邮件服务提供商的模板引擎发送电子邮件。
有5个可用驱动程序
此外,还有用于测试和调试的 log
和 null
驱动程序。
安装
要求
- PHP 8.1
您可以通过composer安装此包
composer require dansmaculotte/laravel-mail-template
包将自动注册自己。
要发布配置文件到config/mail-template.php,运行
php artisan vendor:publish --provider="DansMaCulotte\MailTemplate\MailTemplateServiceProvider"
最后,安装所需的电子邮件服务包
- Mailjet
composer require mailjet/mailjet-apiv3-php
- Mailchimp
composer require mailchimp/transactional
- SendGrid
composer require sendgrid/sendgrid
- Mailgun
composer require mailgun/mailgun-php
- SendinBlue
composer require sendinblue/api-v3-sdk
使用方法
在 config/mail-template.php
中配置您的邮件模板驱动程序和凭证。
基本
安装包后并在配置文件中填写值,使用此包将变得非常容易。以下所有示例都使用外观。别忘了在文件顶部导入它。
use MailTemplate;
$mailTemplate = MailTemplate::make() ->setSubject('Welcome aboard') ->setFrom(config('mail.name'), config('mail.email')) ->setRecipient('Recipient Name', 'recipient@email.com') ->setLanguage('en') ->setTemplate('welcome-aboard') ->setVariables([ 'first_name' => 'Recipient', ]); $response = $mailTemplate->send();
如果在发送方法中发生错误,它将抛出 SendError::responseError
异常。
通过通知
通过php artisan创建一个新的通知
php artisan make:notification WelcomeNotification
将 via
设置为 MailTemplateChannel
/** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return [MailTemplateChannel::class]; }
实现 toMailTemplate
方法并准备您的模板
public function toMailTemplate($notifiable) { return MailTemplate::prepare( 'Welcome aboard', [ 'name' => config('mail.from.name'), 'email' => config('mail.from.email'), ], [ 'name' => $notifiable->full_name, 'email' => $notifiable->email, ], $notifiable->preferredLocale(), 'welcome-aboard', [ 'first_name' => $notifiable->first_name ] ); }
就这样。当 MailTemplateChannel
收到通知时,它将自动调用 MailTemplate
外观中的 send
方法。
Mailjet 特定
Mailjet API 允许设置一个用于调试模板的电子邮件。当在发送电子邮件时遇到模板错误,Mailjet 将向此邮箱发送错误报告。为此,请在 config/mail-template.php
中的 mailjet.debug_email
键中设置电子邮件。
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
许可
MIT许可(MIT)。有关更多信息,请参阅 许可文件。