J'ai une fonction qui peut envoyer du courrier sur Laravel5 en utilisant ce
/**
* Send Mail from Parts Specification Form
*/
public function sendMail(Request $request) {
$data = $request->all();
$messageBody = $this->getMessageBody($data);
Mail::raw($messageBody, function ($message) {
$message->from('[email protected]', 'Learning Laravel');
$message->to('[email protected]');
$message->subject('Learning Laravel test email');
});
return redirect()->back();
}
/**
* Return message body from Parts Specification Form
* @param object $data
* @return string
*/
private function getMessageBody($data) {
$messageBody = 'dummy dummy dummy dummy';
}
et est envoyé avec succès. Mais comment vérifier si elle a été envoyée ou non? Comme
if (Mail::sent == 'error') {
echo 'Mail not sent';
} else {
echo 'Mail sent successfully.';
}
Je devine juste ce code.
Je ne suis pas tout à fait sûr que cela fonctionnerait, mais vous pouvez essayer
/**
* Send Mail from Parts Specification Form
*/
public function sendMail(Request $request) {
$data = $request->all();
$messageBody = $this->getMessageBody($data);
Mail::raw($messageBody, function ($message) {
$message->from('[email protected]', 'Learning Laravel');
$message->to('[email protected]');
$message->subject('Learning Laravel test email');
});
// check for failures
if (Mail::failures()) {
// return response showing failed emails
}
// otherwise everything is okay ...
return redirect()->back();
}
J'espère que cela t'aides
La Mail::failures()
renverra un tableau d'e-mails ayant échoué.
Mail::send(...)
if( count(Mail::failures()) > 0 ) {
echo "There was one or more failures. They were: <br />";
foreach(Mail::failures() as $email_address) {
echo " - $email_address <br />";
}
} else {
echo "No errors, all sent successfully!";
}
source: http://laravel.io/forum/08-08-2014-how-to-know-if-e-mail-was-sent