2015-10-01 15 views
7

पर सफलतापूर्वक या नहीं भेज दिया जाता है मैं एक समारोह है कि इसचेक मेल Laravel 5

/** 
* 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'; 
} 

का उपयोग कर Laravel5 पर मेल भेज सकते हैं और सफलतापूर्वक भेज दी गई है। लेकिन यह कैसे जांचें कि यह भेजा गया था या नहीं?

if (Mail::sent == 'error') { 
echo 'Mail not sent'; 
} else { 
echo 'Mail sent successfully.'; 
} 

मैं बस उस कोड का अनुमान लगा रहा हूं।

+0

आप की कोशिश की है दे सकते हैं 'मेल :: विफलताओं()' – haakym

+0

@haakym मेरे कोड को बदलने के लिए कैसे यह देखने में सक्षम होने के लिए कि वह काम है या नहीं ? उस विधि को आग लगाने के लिए? धन्यवाद –

+0

क्या यह मदद करता है? http://stackoverflow.com/questions/24772531/laravel-mail-sending-email-but-returning-false – haakym

उत्तर

10

मैं पूरी तरह यकीन है कि यह काम करेगा नहीं कर रहा हूँ लेकिन आप इसे एक शॉट

/** 
* 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(); 
} 
+0

मुझे नहीं लगता कि सफलताओं की संख्या के लिए एक समकक्ष विधि है? 'मेल :: सफलताएं()' 'अपरिभाषित विधि पर कॉल' के साथ एक त्रुटि फेंकता है। – trysis

+0

https://laravel.com/api/5.2/Illuminate/Mail/Mailer.html नहीं। बस प्राप्तकर्ताओं की संख्या विफलताओं की कम से कम गिनती करें और आपको अपनी सफलता की गिनती मिल जाएगी। – haakym

4

आशा इस मदद करता है

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

+1

कम से कम उत्तर का जवाब;) http://laravel.io/forum/08-08-2014-how-to-now-if-e-mail-was-sent – haakym

+1

इसका उल्लेख करने के लिए खेद है .. –

संबंधित मुद्दे