artsites/handle-mail

一个 Laravel Nova 工具。

0.2.0 2021-12-09 14:44 UTC

This package is auto-updated.

Last update: 2024-09-07 18:33:19 UTC


README

Laravel Nova 工具,用于通过队列管理网站发送邮件

安装

composer require Artsites/handle-mail

在 NovaServiceProvider 中注册工具

public function tools()
{
     new HandleMail
}

注册后发布默认文件

php artisan vendor:publish --provider="Artsites\HandleMail\ToolServiceProvider" --tag="default"

或者您可以通过标签发布文件

  • job
  • mail
  • view
  • script
  • config
  • migration

然后运行以下命令

php artisan queue:table
php artisan queue:failed-table

php artisan migrate

要求

更新 .env 文件

QUEUE_CONNECTION=database

用法

config/handle-mail.php 中输入电子邮件以从网站发送邮件

'email' => [
    //
],

您可以跳过此步骤,并在项目中不使用 JS 文件进行异步请求

将发布的 handle-mail.js 文件包含到您的项目文件中,或者创建自己的文件以发送请求。将您自定义的表单类添加到 handle-mail.js 文件中,或者使用默认的 form 类。

<form class="form">
    <input type="text" name="email">   
...

请求路由 /handle-mail/send。路由名称 handle-mail.send


如果您需要在发送邮件之前执行代码,可以更改路径并调用方法

namespace Artsites\HandleMail\Http\Controllers\User;

class HandleMailController
{
    /**
     * @param Request $request
     * @param string $subject
     * @param null $callback
     * @return \Illuminate\Http\Response
     */
    public function post(Request $request, string $subject = 'Request', $callback = null)

调度命令

$schedule->command('queue:work --stop-when-empty --queue=handle-mail')->everyFiveMinutes()

视图

发布默认文件后,您可以更改 resource/views/vendor/handle-mail/mail.blade.php 中的邮件模板

工具本地化

将以下行添加到您的 Nova 本地化文件中

"Name": "Name",
"Email": "Email",
"Status": "Status",
"status": "status",
"created_at": "created_at",
"Handle Mail": "Handle Mail",
"Failed": "Failed",
"New today": "New today",
"Per month": "Per month",
"The list is empty": "The list is empty",
"Mails": "Mails",
"Email deleted successfully": "Email deleted successfully",
"Error": "Error",
"Mail": "Mail",
"Failed mails": "Failed mails",
"Failed mail": "Failed mail"
"Resend all emails": "Resend all emails",
"Request": "Request",
"failed_at":"failed_at",
"exception":"exception",
"Send mail":"Send mail",
"Mail sent successfully": "Mail sent successfully",
"Delete email":"Delete email"

您可以添加更多本地化行,它们将自动更新邮件模板和工具页面中的键