Laravel可邮寄不发送电子邮件

时间:2018-06-27 21:18:47

标签: php laravel sendgrid lumen

我正在考虑使用saved事件通过口才模式发送欢迎电子邮件事件。

一切正常,直到实际发送电子邮件为止。因此,我将其添加到了User.php模型的顶部。

protected $dispatchesEvents = [
  'saved' => \App\Events\UserCreated::class
];

UserCreated.php文件仅包含基本样板并分配用户

<?php

namespace App\Events;

use App\Models\User;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Queue\SerializesModels;

class UserCreated extends Event
{
    use InteractsWithSockets, SerializesModels;

    /**
     * @var User
     */
    public $user;

    /**
     * Create a new event instance.
     *
     * @param User $user
     */
    public function __construct(User $user)
    {
        $this->user = $user;
    }
}

我正在听EventServiceProvider.php内的内容,然后触发SendWelcomeEmail.php文件。

 protected $listen = [
    'App\Events\UserCreated' => [
        'App\Listeners\SendWelcomeEmail'
    ]
];

SendWelcomeEmail.php看起来像这样...

<?php

namespace App\Listeners;

use App\Events\UserCreated;
use App\Mail\WelcomeEmail;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Support\Facades\Mail;

class SendWelcomeEmail
{

    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     *
     * @param  UserCreated  $event
     * @return void
     */
    public function handle(UserCreated $event)
    {
        $user = $event->user;

        Mail::to($user->email_address)->send(new WelcomeEmail($user));
    }
}

到目前为止,我可以在dd类内执行WelcomeEmail,并且可以在屏幕上看到它,但是请求完成了,我得到了响应,并且没有错误。但是,邮件实际上从未发送给用户。

我正在为此使用SendGrid,并且已经完全按照他们所输入的内容进行了操作,看不到任何发送到SendGrid的请求,而从我那端发出的请求距离实际发送电子邮件的速度还很远。

我已经在MailServiceProvider内注册了邮件配置和app.php,所以我真的不知道该怎么办。

我也100%知道我得到了正确的用户电子邮件地址,并将其转储出去却得到了正确的输入。

先谢谢了。

1 个答案:

答案 0 :(得分:0)

我认为您的方法调用可能不正确。根据文档(始终适用于5.1),应该将to()函数包装在回调中:

Mail::send('your.email.blade', $blade_variables, function($msg) use ($user) {
    $msg->to($user->email_address);
});

有关更多信息,请参见https://laravel.com/docs/5.1/mail#sending-mail