【发布时间】:2018-08-27 20:43:53
【问题描述】:
我设置了一个联系表单,它使用 Laravel 通知在完成时发送一封电子邮件,但看起来好像没有发送任何内容。
路线
Route::post('/contact', 'ContactController@store');
控制器
public function store()
{
request()->validate([
'name' => 'required|max:255',
'email' => 'required|email|unique:contacts|max:255',
'message' => 'required|max:2000',
]);
$contact = Contact::create(
request()->only([
'name',
'email',
'message',
])
);
User::first()->notify(new SendContactNotification($contact));
return back()->with('success', 'Thank you, I will be in touch as soon as I can');
}
通知
protected $contact;
public function __construct($contact)
{
$this->contact = $contact;
}
public function toMail($notifiable)
{
return (new MailMessage)
->line($this->contact->name)
->line($this->contact->email)
->line($this->contact->message);
}
当我运行它时,我确实收到了成功消息。但是,我的 Mailtrap 中没有任何内容。这是经过清理的 .env 文件的邮件部分:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=username
MAIL_PASSWORD=password
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS='admin@test.com'
MAIL_FROM_NAME='admin'
我看不出我做错了什么。我还尝试在通知中输入提示联系人,如下所示:
public function __construct(Contact $contact)
{
$this->contact = $contact;
}
不幸的是,这并没有奏效。我还认为这可能与我的计算机未设置为使用 php 发送电子邮件有关,但我的印象是 env 文件会处理这个问题。
联系人已正常存储在数据库中,但未发送任何电子邮件。有人可以帮忙吗?
【问题讨论】:
-
您是否设置了 mailtrap.io 帐户?
-
type 提示您使用的型号和什么样的队列驱动程序?
-
当您进入 mailtrap 并选择邮箱时,它会为您提供该邮箱的用户名和密码。您正在使用 .env 文件中的那些?它们与您登录 mailtrap.io 时使用的用户名和密码不同。
-
@user3158900 是的,我刚刚为这个问题清理了文件
-
@Andrew 是的,我做到了