2014-09-28 127 views
0

我努力做一個代碼發送電子郵件給我的訂閱用戶。我想根據用戶默認語言傳遞身體查看,任何人都可以幫助我嗎?Laravel - 如何發送電子郵件給所有用戶

我的代碼:

if($newsletter->save()) 
      { 
       //get users to send to 
       $users = User::where('newsletter', '=', '1')->Where('activated', '=', '1')->get(); 

       //Send to all users subscribed 
       foreach($users as $user) 
       { 
        //set info according to user default lang 
        if($user->default_lang == 'pt') 
        { 
         $body = $newsletter_pt; 
         $subject = Input::get('subject_PT'); 
        } 
        elseif($user->default_lang == 'de') 
        { 
         $body = $newsletter_de; 
         Input::get('subject_DE'); 
        } 

        $data = array(
         'body' => $body, 
         'subject' => $subject 
        ); 

        $from_name = Input::get('from_name'); 
        $from_email = Input::get('from_email'); 

        //QUEUE The Newsletters to send 
        Mail::queue('admin.newsletters.template1', $data, function($message) use ($user, $subject, $from_name, $from_email) 
        { 
         $message->from($from_email, $from_name); 
         $message->bcc($user->email, $user->name); 
         $message->subject($subject); 
        }); 

       } //end foreach 

       return Redirect::To('admin/newsletters')->with('message', array("1" => "Newsletter enviada com sucesso !")); 
      } 

非常感謝;)

+0

你有什麼問題? – SUB0DH 2014-09-28 17:24:44

回答

0

確保$data陣列有您希望傳遞到視圖調用Mail::queue()之前的信息。它應該通過$body$subject變量到您的視圖。

你也可以嘗試使用Mail::send()而不是Mail::queue(),看看它是否有所作爲(如果你不使用排隊系統)。有時queue()方法可能會在序列化Eloquent模型時發生跳躍,因此如果$newsletter_pt$newsletter_de是Eloquent模型,它們可能不會完整保留視圖。

相關問題