我解决问题的方式略有不同。我不得不把邮件做成
markdown
.
第一步。使用此artisan命令创建新邮件:
php artisan make:mail ContactUs
第二步。确保默认
to
(类似于from address/name)设置为
config/mail.php
,例如:
'to' => [
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
'name' => env('MAIL_FROM_NAME', 'Example'),
],
app/Mail/ContactUs.php
这样地:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class ContactUs extends Mailable
{
use Queueable, SerializesModels;
/**
* @var array $data
*/
private $data;
/**
* Create a new message instance.
*
* @param array $data
*/
public function __construct(array $data)
{
$this->data = $data;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this
->from($this->data['email'], $this->data['first_name'] . ' ' . $this->data['last_name'])
->subject($this->data['subject'])
->markdown('mail.contact-us', [
'messageBody' => $this->data['message'],
]);
}
}
public function sendEmail(SendEmailRequest $sendEmailRequest)
{
$validated = $sendEmailRequest->validated();
Mail::send(new ContactUs($validated));
return redirect()
->back()
->with('status', 'Thanks, your email has been successfully sent to us');
}