2017-08-07 88 views
0

我目前正在致力于laravel邮件。我发送电子邮件结构附件这样的:如何检查邮件是否发送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('[email protected]', 'DDMS'); 
    $message->to($request->email); 
    $message->attach($file_name); 

}); 

我已经访问过here。但是,那里的过程总是回归成功。

什么其实我想的是要知道如果邮件发送与否。在我的情况下,Mail发送可能因虚假电子邮件如[email protected]或发生其他一些错误而失败。

我怎么能知道邮件发送或不?

任何帮助表示赞赏

+0

的可能的复制[Laravel 5 - 检查,如果邮件是发送(https://stackoverflow.com/questions/33096055/ laravel-5 - 检查 - 如果邮件-IS-发送) – jrenk

+0

@jrenk不是在我的情况 –

回答

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解决此问题。

另一种方法是使用一个PHP类,它连接到SMTP服务器,并且将检查。

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?

+0

工作@yfail让我检查 –

+0

我已经添加电子邮件作为'jhbdajfsd @ jhbasdjf.com'但是他说,**邮件发送成功! ** –

+0

这也对。原因Laravel不检查邮件是否存在。对于那些你必须使用mailgun的例子。您只能检查是否有问题发送电子邮件或其他可能发生的事情。 – yfain

相关问题