在 Laravel 5 检查邮件发送成功与否
Check mail is sent successfully or not on Laravel 5
我有一个功能可以使用这个
在Laravel5上发送邮件
/**
* 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('yourEmail@domain.com', 'Learning Laravel');
$message->to('goper.zosa@gmail.com');
$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';
}
发送成功。但是如何检查它是否已发送?喜欢
if (Mail::sent == 'error') {
echo 'Mail not sent';
} else {
echo 'Mail sent successfully.';
}
我只是在猜测那个密码。
Hope this helps
Mail::failures()
将 return 一系列失败的电子邮件。
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!";
}
来源:http://laravel.io/forum/08-08-2014-how-to-know-if-e-mail-was-sent
我不完全确定这是否有效,但你可以试一试
/**
* 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('yourEmail@domain.com', 'Learning Laravel');
$message->to('goper.zosa@gmail.com');
$message->subject('Learning Laravel test email');
});
// check for failures
if (Mail::failures()) {
// return response showing failed emails
}
// otherwise everything is okay ...
return redirect()->back();
}
您还可以使用 "Swift_TransportException" 来识别任何错误。
try{
//code to send the mail
}catch(\Swift_TransportException $transportExp){
//$transportExp->getMessage();
}
您可以为此使用 Mail::failures() 函数。
如果存在,它将收集失败的邮件,因此您可以使用下面的代码进行检查。
public function sendMail(Request $request) {
$data = $request->all();
$messageBody = $this->getMessageBody($data);
Mail::raw($messageBody, function ($message) use ($messageBody) {
$message->from('yourEmail@domain.com', 'Learning Laravel');
$message->to('goper.zosa@gmail.com');
$message->subject($messageBody);
});
// check for failed ones
if (Mail::failures()) {
// return failed mails
return new Error(Mail::failures());
}
// else do redirect back to normal
return redirect()->back();
}
对于Laravel 9.11.0
Mail::failires() // is depricated in laravel 9.11.0
要检查您的电子邮件是否已成功发送,可以将邮件发送包装在 try catch 块中:
try {
Mail::to($userEmail)->send($welcomeMailable);
} catch (Exception $e) {
//Email sent failed.
}
或自 Mail::to($email)->send($mailable)
成功 returns 的实例:SentMessage
可以检查:
$welcomeEmailSent = Mail::to($userEmail)->send($welcomeMailable);
if($welcomeEmailSent instanceof \Illuminate\Mail\SentMessage){
//email sent success
}else{
//email sent failed
}
我有一个功能可以使用这个
在Laravel5上发送邮件/**
* 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('yourEmail@domain.com', 'Learning Laravel');
$message->to('goper.zosa@gmail.com');
$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';
}
发送成功。但是如何检查它是否已发送?喜欢
if (Mail::sent == 'error') {
echo 'Mail not sent';
} else {
echo 'Mail sent successfully.';
}
我只是在猜测那个密码。
Hope this helps
Mail::failures()
将 return 一系列失败的电子邮件。
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!";
}
来源:http://laravel.io/forum/08-08-2014-how-to-know-if-e-mail-was-sent
我不完全确定这是否有效,但你可以试一试
/**
* 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('yourEmail@domain.com', 'Learning Laravel');
$message->to('goper.zosa@gmail.com');
$message->subject('Learning Laravel test email');
});
// check for failures
if (Mail::failures()) {
// return response showing failed emails
}
// otherwise everything is okay ...
return redirect()->back();
}
您还可以使用 "Swift_TransportException" 来识别任何错误。
try{
//code to send the mail
}catch(\Swift_TransportException $transportExp){
//$transportExp->getMessage();
}
您可以为此使用 Mail::failures() 函数。 如果存在,它将收集失败的邮件,因此您可以使用下面的代码进行检查。
public function sendMail(Request $request) {
$data = $request->all();
$messageBody = $this->getMessageBody($data);
Mail::raw($messageBody, function ($message) use ($messageBody) {
$message->from('yourEmail@domain.com', 'Learning Laravel');
$message->to('goper.zosa@gmail.com');
$message->subject($messageBody);
});
// check for failed ones
if (Mail::failures()) {
// return failed mails
return new Error(Mail::failures());
}
// else do redirect back to normal
return redirect()->back();
}
对于Laravel 9.11.0
Mail::failires() // is depricated in laravel 9.11.0
要检查您的电子邮件是否已成功发送,可以将邮件发送包装在 try catch 块中:
try {
Mail::to($userEmail)->send($welcomeMailable);
} catch (Exception $e) {
//Email sent failed.
}
或自 Mail::to($email)->send($mailable)
成功 returns 的实例:SentMessage
可以检查:
$welcomeEmailSent = Mail::to($userEmail)->send($welcomeMailable);
if($welcomeEmailSent instanceof \Illuminate\Mail\SentMessage){
//email sent success
}else{
//email sent failed
}