distilleries/mailersaver

覆盖laravel的Mailer助手以挂钩发送者

2.6.0 2018-11-27 09:41 UTC

This package is auto-updated.

Last update: 2024-08-27 21:58:02 UTC


README

Scrutinizer Code Quality Code Coverage Build Status Total Downloads Latest Stable Version License

Laravel 5 MailerSaver

扩展laravel 5的Mailer。

  • 添加覆盖您邮件的to、cc、bcc的功能,而无需修改您的实现。
  • 添加从模型获取模板邮件、主题、cc、bcc和类型的功能。

目录

  1. 安装
  2. 配置文件
  3. 视图
  4. 发送电子邮件

安装

在composer.json中添加

    "require": {
        "distilleries/mailersaver": "2.*",
    }

运行composer update

将服务提供者添加到config/app.php

    'providers' => [
        // ...
       Distilleries\MailerSaver\MailerSaverServiceProvider::class,
       Wpb\String_Blade_Compiler\ViewServiceProvider::class,
    ],

并且 Facade(也在config/app.php中)替换laravel facade Mail

    'aliases' => [
        // ...
       'Mail' => 'Distilleries\MailerSaver\Facades\Mail',
    ]

您需要提供一个数据模型,只需在app/Providers/AppServiceProvider.php中的register方法中添加您模型的一个新实例即可

    public function register()
	{
		$this->app->singleton('Distilleries\MailerSaver\Contracts\MailModelContract', function ($app) {
            return new App\Email;
        });

	}

在这种情况下,我返回一个Email模型实例。这个模型只实现了Distilleries\MailerSaver\Contracts\MailModelContract合约。

发布模型

php artisan vendor:publish --provider="Distilleries\MailerSaver\MailerSaverServiceProvider" --tag="models"

发布迁移

php artisan vendor:publish --provider="Distilleries\MailerSaver\MailerSaverServiceProvider" --tag="migrations"

配置文件

您可以使用命令行命令发布配置文件

php artisan vendor:publish --provider="Distilleries\MailerSaver\MailerSaverServiceProvider"
    return [
        'template' => 'mailersaver::default',
        'override' => [
            'enabled' => env('MAILERSAVER_ENABLED', false),
            'to' => env('MAILERSAVER_TO', 'default1@mailto.com,default2@mailto.com'),
            'cc' => env('MAILERSAVER_CC', ''),
            'bcc' => env('MAILERSAVER_BCC', ''),
        ],
    ];

视图

要覆盖视图,您可以在配置中提供一个新的模板或修改当前的模板。在修改之前,您必须先发布它

php artisan vendor:publish --provider="Distilleries\MailerSaver\MailerSaverServiceProvider" --tag="views"

发送电子邮件

它与laravel mailer完全相同。

示例

Mail::send('emails.welcome', ['key' => 'value'], function ($message) {
    $message->to('foo@example.com', 'John Smith')->subject('Welcome!');
});

如果覆盖设置为true,则电子邮件将发送到另一个to电子邮件地址。

故障排除

如果composer update --require-dev拒绝安装,在安装之前从vendor中删除illuminate/*,或者直接删除vendor并重新开始。