2015-12-31 95 views
0

我使用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)時,電子郵件未發送,並且我沒有收到任何錯誤消息。

你有什麼想法如何解決或調試呢?

+0

你運行'php工匠隊列:聽'? –

+0

是的,我已經運行它。 – Koga

回答

0

這不是一個錯誤,只是一個意外的行爲。

我使用Windows上的Xampp和用於開發的php mail驅動程序。出於某種原因,排隊的郵件未保存在Xampp目錄中的默認mailoutput文件夾中。而是在Lumen目錄中自動創建一個新的mailoutput文件夾。

在那裏我找到了所有錯過的郵件。 :)

相關問題