php - Laravel 5 SwiftMailer 的发送 : how to get error code

标签 php laravel email

我正在发送类似于此的电子邮件:Laravel 5: Sending Email 。我就是这样做的:

$mail_status = Mail::send( 'emails.followup', $data, function( $message ) use ($data) {
             $message->to( $data['email'] )
            ->from( $data['email_from'], $data['email_name'] )
            ->subject( $data['subject'] );
        });

if($mail_status) {
    $ret_status = 'sent';
}
else
    $ret_status = 'sent_failed';

现在,如果 $ret_status 为“sent_failed”,我想知道发生了什么。我该怎么做?如何查看邮件服务器发来的消息?

这是我的 .env 文件:

MAIL_DRIVER=smtp
MAIL_HOST=mail.mydomain.com
MAIL_PORT=465
MAIL_USERNAME=noreply@mydomain.com
MAIL_PASSWORD=thepassword
MAIL_ENCRYPTION=ssl

更新

看起来上面的方法是 Laravel 4。如果你知道如何使用 Laravel 5+ 获取错误代码,我可以认为它是正确的答案。

最佳答案

您可以使用 try catch 来实现这一点,您也错误地使用了 $email, $email_from, $email_name, $subject 而不传递到函数作用域。

try{
    $mail_status = Mail::send( 'emails.followup', $data, function( $message ) use ($data, $email, $email_from, $email_name, $subject) {
                        $message->to( $email )
                        ->from( $email_from, $email_name )
                        ->subject( $subject );
                    });
    //If error from Mail::send
    if($mail_status->failures() > 0){
        //Fail for which email address...
        foreach(Mail::failures as $address) {
            print $address . ', ';
        }
        exit;
    }  
}
catch(\Exception $e){
    // Get error here
    print $e->getMessage();
    exit;
}

添加了电子邮件地址的失败打印,以检查哪个地址的电子邮件失败。

关于php - Laravel 5 SwiftMailer 的发送 : how to get error code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45819536/

相关文章:

php - PEAR 邮件 - 连接失败

java - 如何使用 JavaMail API 接收已发送电子邮件的确认信息?

javascript - 3秒后重定向至主页

php sleep 与 bash sleep

PHP json_decode整数和 float 到字符串

php - 从mysql表中查找相关数据

php - Nginx 在 Windows 上使用 Docker 指向错误的目录

python - 如何跳过处理作为另一封电子邮件附件的电子邮件的附件

url - Laravel 4 使用路由将用户名放置到 URL

laravel - Laravel 如何加载关系?