就像标题所说,我正在尝试发送电子邮件,但它不断收到此错误。
<?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();
}
}
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;
,但这就是教程中使用的。
我想我明白了。
我试图在 .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'),
],