如何检查邮件是否在laravel中发送?

时间:2017-08-07 07:31:46

标签: php laravel email smtp

我正在处理laravel邮件。我发送了带有附件的电子邮件结构,如下所示:

$document  = Document::find($request->document_id);

Mail::send('email.senddocs', array('project'=>$document->project->name,'type'=>$document->documentType->type), function($message) use($request,$document){

    $file_name = public_path().'/documents/'.$document->project->p_key.'/'.$document->file_name;

    $message->from('us@example.com', 'DDMS');
    $message->to($request->email);
    $message->attach($file_name);

});

我已经访问了here。但是,那边的过程总会让成功。

我真正想要的是知道邮件是否发送。在我的情况下,由于Mail之类的虚假电子邮件或其他一些错误,akdjbaksdjf@jhbasdhadfs.com发送可能会失败。

我如何知道邮件是否已发送?

感谢任何帮助

1 个答案:

答案 0 :(得分:1)

这里有几次问这个问题: Laravel 5 - check if mail is send

您可以使用失败方法:

if( count(Mail::failures()) > 0 ) {

   foreach(Mail::failures as $email_address) {
       echo "$email_address <br />";
    }

} else {
    echo "Mail sent successfully!";
}

这仅检查是否发送了电子邮件。您无法使用此方法处理现有的电子邮件地址。 例如,您可以使用mailgun解决此问题。

另一种方法是使用连接到smtp服务器的php类,并检查。

PHP类: https://www.phpclasses.org/package/6650-PHP-Check-if-an-e-mail-is-valid-using-SMTP.html

检查电子邮件地址的一些信息:How to check if an email address exists without sending an email?