Laravel 11 发送电子邮件时奇怪的未定义数组键“name”

问题描述 投票:0回答:1

就像标题所说,我正在尝试发送电子邮件,但它不断收到此错误。

ContactController.php

<?php

namespace App\Http\Controllers;

use App\Http\Requests\ContactFormRequest;
use App\Mail\ContactMail;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;

class ContactController extends Controller
{
    /**
     * Display the user's profile form.
     */
    public function contact(ContactFormRequest $request): \Illuminate\Http\RedirectResponse
    {
        $mailData = $request->validated();
        \Log::info(config('mail.to.address'));
        \Log::info($mailData);
        Mail::to(config('mail.to.address'))->send(new ContactMail($mailData)); // error points to here.
        return redirect()->back();
    }
}

联系邮件.php

class ContactMail extends Mailable
{
    use Queueable, SerializesModels;

    public $mailData = [];

    /**
     * Create a new message instance.
     */
    public function __construct($mailData)
    {
        \Log::info("did construct");
        $this->mailData = $mailData;
    }
}

日志

[2024-04-25 02:38:59] local.INFO: [email protected]  
[2024-04-25 02:38:59] local.INFO: array (
  'contact-name' => 'name',
  'contact-name-furigana' => 'ネイム',
  'contact-email' => '[email protected]',
  'contact-phone' => '1234',
  'contact-contents' => 'contents',
  'contact-privacy' => 1,
)  

错误

Undefined array key "name" {"exception":"[object] (ErrorException(code: 0): Undefined array key \"name\" at /var/www/vendor/laravel/framework/src/Illuminate/Mail/MailManager.php:479)

ContactMail
班都没上。

首先我认为问题在于导入

use Illuminate\Support\Facades\Mail;
,但这就是教程中使用的。

php laravel email laravel-11
1个回答
0
投票

我想我明白了。

我试图在 .env 和

MAIL_TO_ADDRESS="[email protected]"
中添加
app\config\mail.php

在我的mail.php中,我只添加了

    'to' => [
        'address' => env('MAIL_TO_ADDRESS', '[email protected]'),
    ],

我猜 laravel 只接受“to:address”和“to:name”作为一对,或者根本不接受。所以我把它改为

    'to' => [
        'address' => env('MAIL_TO_ADDRESS', '[email protected]'),
        'name' => env('MAIL_TO_NAME', 'Example'),
    ],
© www.soinside.com 2019 - 2024. All rights reserved.