gwdhost/nova-mail-testing

一个 Laravel Nova 邮件测试工具。

0.1.4 2020-08-11 20:35 UTC

This package is auto-updated.

Last update: 2024-09-12 06:11:23 UTC


README

此工具将显示包含正确数据的邮件模板,您可以进行设置。您需要做的只是设置配置文件,然后所有事情都将自动处理。

要安装,您可以运行以下命令

composer require gwdhost/nova-mail-testing

// And afterwards

php artisan vendor:publish --provider="Gwdhost\MailTesting\ToolServiceProvider"

然后将以下内容添加到 NovaServiceProvidertools() 方法数组中

return [
     new \Gwdhost\MailTesting\MailTesting()
];

这里您可以看到一个邮件测试配置文件的示例。

return [
    'mails' => [
        [
            'label' => 'Welcome mail',
            'class' => \App\Mail\WelcomeMail::class,
            'args' => [
                \App\Nova\User::class,
                [
                    'type' => 'text',
                    'label' => 'Textfield',
                    'placeholder' => 'Placeholder'
                ],
                [
                    'type' => 'textarea',
                    'label' => 'Textarea',
                    'placeholder' => 'Placeholder'
                ],
                [
                    'type' => 'select',
                    'label' => 'Select',
                    'options' => [
                        'a' => 'Answer A',
                        'b' => 'Answer B',
                        'c' => 'Answer C',
                    ]
                ],
            ]
        ],
    ]
];

您可以使用 Nova 资源或自定义字段,如 texttextareaselect。这些字段将作为参数添加到您的邮件中。

所以如果您需要一个欢迎邮件,例如,需要以下内容

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use App\Models\User;

class WelcomeMail extends Mailable
{
    use Queueable, SerializesModels;

    protected $user;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct(User $user)
    {
        $this->user = $user;
    }

    ...
}

那么您需要一个 App\Models\User 实例来生成此电子邮件。因此,您需要添加以下配置文件

return [
    'mails' => [
        [
            'label' => 'Welcome mail',
            'class' => \App\Mail\WelcomeMail::class,
            'args' => [
                \App\Nova\User::class,
            ]
        ],
    ]
];

然后您就可以直接在 UI 中发送测试邮件并显示预览。