【问题标题】:cakephp 3.x how to check if mail send or notcakephp 3.x 如何检查邮件是否发送
【发布时间】:2016-01-22 05:05:35
【问题描述】:

我正在使用 cakephp 3.0 发送邮件,这是我的代码

$email = new Email();
$siteEmail = "test@example.com";
$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'));
}

但是如果我打印 $response 变量而不是它打印所有邮件相关数据的数组,例如来自消息和主题,如何检查是否发送邮件当我使用 if else 时的成功或失败闪烁消息,如上所示,无论是否发送邮件,它总是返回 true

谢谢

【问题讨论】:

    标签: email cakephp response cakephp-3.0


    【解决方案1】:

    发送失败会导致异常,确切地说是\Cake\Network\Exception\SocketException,因此请将您的send() 调用包装在a try block 中,并评估可能捕获的异常。

    use Cake\Network\Exception\SocketException;
    
    // ...
    
    try {
        $email->send($message);
        // success
    } catch (SocketException $exception) {
        // failure
    }
    

    【讨论】:

    • 我用过这个但没有解决我的问题仍然总是显示成功消息
    • @DeepakGoyal 那么(Cake)PHP 可能不会注意到任何错误。
    • @DeepakGoyal 如果这没有发现错误,那么问题出在您的应用程序之外,因此您将无法处理此类故障。就 Cake 而言,它已经成功地发挥了作用。
    • 你能给我邮件代码吗,因为我刚刚添加了邮件代码,但是它既不发送邮件也不显示任何错误总是显示成功请帮我解决这个问题
    猜你喜欢
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 2017-12-06
    • 2013-04-09
    • 2015-12-19
    相关资源
    最近更新 更多