spatie/laravel-mailable-test

一个用于轻松测试邮件的艺术命令

2.4.0 2024-03-08 15:22 UTC

This package is auto-updated.

Last update: 2024-09-08 16:16:55 UTC


README

Latest Version on Packagist Software License GitHub Workflow Status Check & fix styling Total Downloads

您真的需要填写整个表单来测试应用程序发送的邮件吗?或者更糟糕的是,完成整个结账流程来查看和调试订单确认邮件?停止这种疯狂的行为。

此包提供了一个艺术命令,可以将邮件发送到电子邮件地址。它可以这样使用

php artisan mail:send-test "OrderConfirmation" recipient@mail.com

将给定的邮件发送到给定的收件人。任何传递给邮件类__construct方法的参数都将自动传递。

支持我们

我们投入了大量资源来创建最佳开源包。您可以通过购买我们的付费产品之一来支持我们。

我们非常感激您从家乡给我们寄明信片,并说明您正在使用我们哪个包。您可以在我们的联系页面上找到我们的地址。我们将所有收到的明信片发布在我们的虚拟明信片墙上

安装

您可以通过composer安装此包

composer require spatie/laravel-mailable-test

该包将自动注册自己。

可选地,您可以使用以下命令发布配置文件

php artisan vendor:publish --provider="Spatie\MailableTest\MailableTestServiceProvider" --tag="config"

这是已发布配置文件的内容

return [

    /*
     * This class will be used to generate argument values for the constructor
     * of a mailable. This can be any class as long as it
     * extends \Spatie\MailableTest\ArgumentValueProvider::class
     */
    'argument_value_provider_class' => \Spatie\MailableTest\FakerArgumentValueProvider::class,

    /*
     * Base namespace Mailable classes
     */
    'base_namespace' => 'App\Mail',
];

用法

要发送任何邮件,请执行此艺术命令

php artisan mail:send-test "App\Mail\MyMailable" recipient@mail.com

这将发送给定的邮件到给定的邮件地址。给定的邮件中可能设置的收件人、抄送和密送地址将被清除。邮件将只发送到艺术命令中给出的邮件地址。

该包将为邮件构造函数中的任何类型提示的参数提供一个值。如果参数是intstringbool,则包将使用Faker生成值。任何类型提示Eloquent模型的参数将收到该模型的第一条记录。对于所有具有类类型提示的参数,将使用容器生成参数。

自定义传递给邮件构造函数的值

通过命令

自定义传递给邮件构造函数的值的最佳方法是使用mail:send-test命令的values选项。假设您的邮件构造函数看起来像这样

public function __construct(string $title, Order $order) 
{
   ...
}

在这个例子中,Order类是一个Eloquent模型。如果您不希望包生成假值或使用第一个Order,您可以向命令传递一个values选项。该选项应获取一个由逗号分隔的字符串。每个对中的第一个值(由冒号分隔)应该是邮件构造函数中参数的名称。第二个值应该是传递给该参数的值。对于涉及Eloquent模型的参数,传递的值将用作id。

因此,在这个例子中,My title将传递给$title,id为5的Order将传递给$order

php artisan mail:send-test "App\Mail\OrderConfirmation" recipient@mail.com --values="title:My title,order:5"

通过覆盖ArgumentValueProvider

负责获取应传递给可邮寄构造函数的值的类是 Spatie\MailableTest\FakerArgumentValueProvider。您可以通过在 laravel-mailable-test 配置文件中的 argument_value_provider_class 中指定自己的类来覆盖此类。

默认情况下,该包会将 Eloquent 模型的第一条记录传递给每个类型提示为模型的参数。如果您想使用自己的工厂,可以这样做。

namespace App;

use Spatie\MailableTest\FakerArgumentValueProvider;

class MyCustomArgumentValueProvider extends FakerArgumentValueProvider
{
       protected function getModelInstance(string $mailableClass, string $argumentName, Model $model, $id): Model
       {
          return factory(get_class($model));
       }
}

更新日志

有关最近更改的更多信息,请参阅 更新日志

测试

$ composer test

贡献

有关详细信息,请参阅 贡献指南

安全

如果您发现与安全相关的错误,请通过发送电子邮件到 security@spatie.be 而不是使用问题跟踪器。

明信片软件

您可以使用此软件包,但如果它进入您的生产环境,我们非常感谢您从您的家乡给我们寄一张明信片,说明您正在使用我们的哪个软件包。

我们的地址是:Spatie,Kruikstraat 22,2018 安特卫普,比利时。

我们将所有收到的明信片 发布在我们的公司网站上

鸣谢

许可协议

MIT 许可协议(MIT)。有关更多信息,请参阅 许可文件