我正在处理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
发送可能会失败。
我如何知道邮件是否已发送?
感谢任何帮助
答案 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?