【问题标题】:Send email from queued event handler从排队的事件处理程序发送电子邮件
【发布时间】:2016-04-05 00:43:56
【问题描述】:

我将 Lumen 5.1 和 Redis 用于队列。而且我有一个非常标准的事件处理程序,应该发送一封电子邮件:

<?php

namespace App\Handlers\Events;

use Illuminate\Contracts\Queue\ShouldQueue;
use App\Events\UserHasRegistered;
use Illuminate\Contracts\Mail\Mailer;

class SendWelcomeEmail implements ShouldQueue
{
    protected $mailer;

    public function __construct(Mailer $mailer)
    {
        $this->mailer = $mailer;
    }

    public function handle(UserHasRegistered $event)
    {
        $user = $event->user;

        $this->mailer->raw('Test Mail', function ($m) use ($user) {
            $name = $user->getFirstName().''.$user->getLastName();

            $m->to($user->auth()->getEmail(), $name)->subject('This is a test.');
        });
    }
}

邮件是在我不使用ShouldQueue接口时发送的。但是当我将事件处理程序推送到队列时(即使用ShouldQueue 接口),电子邮件没有发送,我也没有收到任何错误消息。

您对如何解决或调试此问题有任何想法吗?

【问题讨论】:

  • 你跑php artisan queue:listen了吗?

标签: laravel event-handling queue laravel-5.1 lumen


【解决方案1】:

这不是错误,只是意外行为。

我在 Windows 上使用 Xampp 和 php mail 驱动程序进行开发。由于某种原因,排队的邮件没有保存在 Xampp 目录中的默认 mailoutput 文件夹中。而是在 Lumen 目录中自动创建了一个新的 mailoutput 文件夹。

在那里我找到了所有丢失的邮件。 :)

【讨论】:

    猜你喜欢
    • 2019-04-21
    • 2019-07-17
    • 2015-06-07
    • 2019-03-09
    • 2022-08-13
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 2018-05-10
    相关资源
    最近更新 更多