diff --git a/app/Console/Commands/SendEmail.php b/app/Console/Commands/SendEmail.php index 9df5677..02e5cb1 100755 --- a/app/Console/Commands/SendEmail.php +++ b/app/Console/Commands/SendEmail.php @@ -55,12 +55,12 @@ class SendEmail extends Command $emailRecordUsers = $records->emailRecordUsers->where('status', 0); foreach ($emailRecordUsers as $recordUser) { // 替换后的标题 - $title = EmailRecordUser::template($records->subject, $recordUser); + $title = EmailRecordUser::template($records->subject, $recordUser->var_data); // 替换后的内容 - $template = EmailRecordUser::template($emailTemplate->content, $recordUser); + $template = EmailRecordUser::template($emailTemplate->content, $recordUser->var_data); try { // 发送邮件 - EmailRecordUser::email($title, $template, $recordUser); + EmailRecordUser::email($title, $template, $recordUser->email); $recordUser->status = 1; } catch (\Exception $e) { $recordUser->status = 2; diff --git a/app/Http/Controllers/Admin/EmailRecordController.php b/app/Http/Controllers/Admin/EmailRecordController.php index 10391f1..9d79a3c 100644 --- a/app/Http/Controllers/Admin/EmailRecordController.php +++ b/app/Http/Controllers/Admin/EmailRecordController.php @@ -216,6 +216,53 @@ class EmailRecordController extends BaseController } } + /** + * @OA\Post( + * path="/api/admin/email-record/send-example", + * tags={"邮件发送配置"}, + * summary="发送测试邮件", + * description="", + * @OA\Parameter(name="email_template_id", in="query", @OA\Schema(type="integer", format="int64"), required=true, description="模版id"), + * @OA\Parameter(name="subject", in="query", @OA\Schema(type="string", format="date"), required=false, description="标题"), + * @OA\Parameter(name="email", in="query", @OA\Schema(type="string", format="date"), required=false, description="邮箱地址"), + * @OA\Parameter(name="var_data", in="query", @OA\Schema(type="string", format="mediumtext"), required=false, description="数组,var_data自定义数据"), + * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="认证token"), + * @OA\Response( + * response="200", + * description="操作成功" + * ) + * ) + */ + public function sendExample() + { + $all = \request()->all(); + $validator = Validator::make($all, [ + 'email_template_id' => 'required', + 'subject' => 'required', + 'email' => 'required', + 'var_data' => 'required', + ]); + if ($validator->fails()) { + return $this->fail([ResponseCode::ERROR_PARAMETER, implode(',', $validator->errors()->all())]); + } + try { + $emailTemplate = EmailTemplate::find($all['email_template_id']); + // 替换后的标题 + $title = EmailRecordUser::template($all['subject'], $all['var_data']); + // 替换后的内容 + $template = EmailRecordUser::template($emailTemplate->content, $all['var_data']); + try { + // 发送邮件 + EmailRecordUser::email($title, $template, $all['email']); + return $this->success("发送成功"); + } catch (\Exception $e) { + return $this->fail([ResponseCode::ERROR_BUSINESS, $e->getMessage()]); + } + } catch (\Exception $exception) { + return $this->fail([$exception->getCode(), $exception->getMessage()]); + } + } + /** * @OA\Get( * path="/api/admin/email-record/destroy", diff --git a/app/Models/EmailRecordUser.php b/app/Models/EmailRecordUser.php index 71b4e00..1aba2c0 100755 --- a/app/Models/EmailRecordUser.php +++ b/app/Models/EmailRecordUser.php @@ -21,9 +21,8 @@ class EmailRecordUser extends SoftDeletesModel * @param $template * @param $email_record_users */ - public static function template($template, $record_user) + public static function template($template, $var_data) { - $var_data = $record_user->var_data; foreach ($var_data as $key => $var) { $template = str_replace('{' . $key . '}', $var, $template); } @@ -34,11 +33,11 @@ class EmailRecordUser extends SoftDeletesModel /** * 发送邮件 */ - public static function email($title, $template, $record_user) + public static function email($title, $template, $email) { - Mail::send('email', compact('template'), function ($message) use ($record_user, $title) { + Mail::send('email', compact('template'), function ($message) use ($email, $title) { $message->from(env('MAIL_USERNAME'), '苏州科技商学院'); - $message->to($record_user->email)->subject($title); + $message->to($email)->subject($title); }); return true; } diff --git a/routes/api.php b/routes/api.php index 695a8d6..8f4d64f 100755 --- a/routes/api.php +++ b/routes/api.php @@ -215,6 +215,7 @@ Route::group(["namespace" => "Admin", "prefix" => "admin"], function () { Route::get('email-record/index', [\App\Http\Controllers\Admin\EmailRecordController::class, "index"]); Route::get('email-record/show', [\App\Http\Controllers\Admin\EmailRecordController::class, "show"]); Route::post('email-record/save', [\App\Http\Controllers\Admin\EmailRecordController::class, "save"]); + Route::post('email-record/send-example', [\App\Http\Controllers\Admin\EmailRecordController::class, "sendExample"]); Route::get('email-record/destroy', [\App\Http\Controllers\Admin\EmailRecordController::class, "destroy"]); Route::post('email-record/excel-show', [\App\Http\Controllers\Admin\EmailRecordController::class, "excelShow"]); });