【问题标题】:Laravel Notifications not sendingLaravel 通知未发送
【发布时间】: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 是的,我做到了

标签: php laravel email


【解决方案1】:

是env文件中的端口,我改成:

MAIL_PORT=465

它成功了!

因为这个答案,我知道端口 2525 不能工作:https://stackoverflow.com/a/45418259/5497241

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    • 2019-11-11
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    相关资源
    最近更新 更多