dansmaculotte/laravel-mail-template

一个用于发送电子邮件的邮件模板驱动程序

v4.0.1 2022-11-18 14:40 UTC

This package is auto-updated.

Last update: 2024-09-18 18:43:52 UTC


README

Latest Version Total Downloads Build Status Quality Score Code Coverage

此包允许您通过邮件服务提供商的模板引擎发送电子邮件。

有5个可用驱动程序

此外,还有用于测试和调试的 lognull 驱动程序。

安装

要求

  • 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)。有关更多信息,请参阅 许可文件