2016-01-22 16 views
0

我使用CakePHP的3.0,這是我的代碼CakePHP的3.X如何檢查郵件發送或不

$email = new Email(); 
$siteEmail = "[email protected]"; 
$subject = "Message subject"; 
$email = new Email(); 
$email->from($siteEmail) 
->to($userEmail) 
->subject($subject); 

$response = $email->send($message); 
if($response) { 
    $this->Flash->success(__('mail send')); 
} else { 
    $this->Flash->error(__('mail send fail')); 
} 

寄送郵件,但如何,如果我打印$響應變量檢查郵件發送或不比它的打印所有郵件相關數據的陣列喜歡從消息和主題沒有響應像消息發送或不是如何檢查,以便打印成功或失敗時使用的Flash消息,如果我使用如上所示它總是返回true或者郵件是否發送

謝謝

回答

1

發送失敗a導致異常,\Cake\Network\Exception\SocketException是準確的,因此請將您的send()調用寫入a try block,並評估可能的捕獲異常。

use Cake\Network\Exception\SocketException; 

// ... 

try { 
    $email->send($message); 
    // success 
} catch (SocketException $exception) { 
    // failure 
} 
+0

我用這一點,但並沒有解決我的問題還是始終顯示成功messaage –

+0

@DeepakGoyal好那麼有可能是沒有錯誤的是(蛋糕),PHP將能夠注意到。 – ndm

+0

@DeepakGoyal如果這不是一個錯誤,那麼問題就出在你的應用程序之外,所以你將無法處理這種失敗。就Cake而言,它已經成功地完成了它的一切。 – drmonkeyninja