代码之家  ›  专栏  ›  技术社区  ›  Leon Segal

Laravel通知未发送

  •  0
  • Leon Segal  · 技术社区  · 6 年前

    我设置了一个联系人表单,它在完成时使用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);
    }
    

    当我运行它时,我确实收到了成功消息。但是,我的邮件陷阱中没有显示任何内容。下面是sanitized.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文件可以解决这个问题。

    联系人存储在数据库中正常,但没有发送电子邮件。有人能帮忙吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Leon Segal    6 年前