2014-07-23 4 views
5

के साथ लार्वेल में ई-मेल भेजना मुझे ई-मेल भेजने की ज़रूरत है, लेकिन मेरे पास पहले से ही HTML उत्पन्न हुआ है, मैं लार्वाले ब्लेड का उपयोग नहीं करना चाहता क्योंकि मुझे HTML में एक सीएसएस इनलाइनर लागू करने की आवश्यकता है, इसलिए यहकस्टम एचटीएमएल

getRenderedView($viewData) { 
    //code 
    $html = View::make('email.notification', $viewData)->render(); 
    $this->cssInliner->setCSS($this->getCssForNotificationEmail()); 
    $this->cssInliner->setHTML($html); 
    return $this->cssInliner->convert(); 
} 

तो, Laravel के साथ मेल भेजने के लिए आप आमतौर पर कुछ इस तरह करते हैं:: मैं पहले से ही है

Mail::send('emails.welcome', $data, function($message) 
{ 
    $message->to('[email protected]', 'John Smith')->subject('Welcome!'); 
}); 

लेकिन मैं एक दृश्य के पारित करने के लिए नहीं करना चाहते, मैं कैसे एचटीएमएल उत्पन्न है एचटीएमएल, मैं यह कैसे कर सकता हूँ?

उत्तर

13

अगर मैं कर रहा हूँ करने के लिए इस दौर में जाओ Icho.php नामक एक दृश्य बनाया और अंदर बस $ html गूंज।

अपने एचटीएमएल को $ डेटा ['html'] जैसे कुछ असाइन करें।

फिर नीचे अपने $ डेटा ['html'] को गूंज दृश्य में पास करें।

Mail::send('emails.echo', $data, function($message) { $message->to('[email protected]', 'John Smith')->subject('Welcome!'); });

मुझे पता है कि कैसे आप पर हो।

+0

अलग-अलग हेडर फ़ूटर इत्यादि का उपयोग करते समय भी इस विधि का उपयोग टेम्पलेट्स के साथ अच्छे प्रभाव के लिए भी किया जा सकता है। – fossman83

+0

आप एमवीपी। :) –

1

शरीर बंद होने से पहुंच योग्य नहीं है।

आपको अपनी ओर से तेज संदेश बना सकते हैं:

$message = \Swift_Message::newInstance(); 
    $message->setFrom($messageToParse->template['fromEmail']); 
    $message->setTo($messageToParse->to['email']); 
    $message->setBody($messageToParse->body); 
    $message->addPart($messageToParse->body, 'html contents'); 
    $message->setSubject('subject'); 

लेकिन तब आप परिवहन बनाने की जरूरत करने के लिए:, सही आप क्या हासिल करना चाहते में

$mailer = self::setMailer([your transport]); 
    $response = $mailer->send($message); 
+0

क्या आप चर्चा कर सकते हैं कि "आपका परिवहन" कैसा दिखता है? – Whit

0
$data = array('email' => '[email protected]', 'first_name' => 'Laravel', 
     'from' => '[email protected]', 'from_name' => 'learming'); 

Mail::send('email.welcome', $data, function($message) use ($data) 
{ 
$message->to($data['email'])->from($data['from'], 
$data['first_name'])->subject('Welcome!'); 
}); 
1

मैं एक टिप साझा करना चाहता हूं जो "ब्लेड" के बिना ईमेल भेजने में मदद कर सकता है।

लैरवेल मेल फ़ंक्शन वास्तव में स्विफ्ट के लिए एक रैपर है। बस $ टेम्पलेट और $ डेटा पर खाली सरणी असाइन करें, मेरा मतलब है फ़ंक्शन के पहले 2 पैरामीटर, फिर शेष कॉलबैक के अंदर करें।

Mail::send([], [], function($message) use($to, $title, $email_body) 
{ 
    $message->setBody($email_body)->to($to)->subject($title); 
}); 
संबंधित मुद्दे