修改邮件部分

This commit is contained in:
yinjianm
2026-02-22 03:22:14 +08:00
parent 7a3e245887
commit 17a7c63aec
8 changed files with 206 additions and 71 deletions
@@ -44,14 +44,14 @@ class CommController extends Controller
return $this->fail([400, __('Email verification code has been sent, please request again later')]);
}
$code = rand(100000, 999999);
$subject = admin_setting('app_name', 'XBoard') . __('Email verification code');
$subject = admin_setting('app_name', 'Notification Service') . __('Email verification code');
SendEmailJob::dispatch([
'email' => $email,
'subject' => $subject,
'template_name' => 'verify',
'template_value' => [
'name' => admin_setting('app_name', 'XBoard'),
'name' => admin_setting('app_name', 'Notification Service'),
'code' => $code,
'url' => admin_setting('app_url')
]
@@ -45,11 +45,11 @@ class ConfigController extends Controller
{
$mailLog = MailService::sendEmail([
'email' => $request->user()->email,
'subject' => 'This is xboard test email',
'subject' => 'Mail connectivity test',
'template_name' => 'notify',
'template_value' => [
'name' => admin_setting('app_name', 'XBoard'),
'content' => 'This is xboard test email',
'name' => admin_setting('app_name', 'Notification Service'),
'content' => 'This is a mail connectivity test',
'url' => admin_setting('app_url')
]
]);
@@ -441,27 +441,32 @@ class UserController extends Controller
ini_set('memory_limit', '-1');
$sortType = in_array($request->input('sort_type'), ['ASC', 'DESC']) ? $request->input('sort_type') : 'DESC';
$sort = $request->input('sort') ? $request->input('sort') : 'created_at';
$hourlyLimit = (int) env('MASS_EMAIL_HOURLY_LIMIT', 500);
$hourlyLimit = $hourlyLimit > 0 ? $hourlyLimit : 500;
$builder = User::orderBy($sort, $sortType);
$this->applyFiltersAndSorts($request, $builder);
$subject = $request->input('subject');
$content = $request->input('content');
$templateValue = [
'name' => admin_setting('app_name', 'XBoard'),
'name' => admin_setting('app_name', 'Notification Service'),
'url' => admin_setting('app_url'),
'content' => $content
];
$chunkSize = 1000;
$processed = 0;
$builder->chunk($chunkSize, function ($users) use ($subject, $templateValue, &$totalProcessed) {
$builder->chunk($chunkSize, function ($users) use ($subject, $templateValue, $hourlyLimit, &$processed) {
foreach ($users as $user) {
$delaySeconds = intdiv($processed, $hourlyLimit) * 3600;
dispatch(new SendEmailJob([
'email' => $user->email,
'subject' => $subject,
'template_name' => 'notify',
'template_value' => $templateValue
], 'send_email_mass'));
], 'send_email_mass'))->delay(now()->addSeconds($delaySeconds));
$processed++;
}
});