2015-09-16 28 views
0

我有這個需求,我需要從我的應用程序向TO和CC頭中的所有用戶發送單獨的郵件。在Laravel的foreach循環中發送郵件

因此,例如,我在ab中添加了[email protected]; [email protected],CC,[email protected]。這裏有三個電子郵件ID,TO和CC的累積。

我需要發送一個單獨的郵件給所有三個。因此,[email protected]只會在郵件標題中看到他的名字,以此類推CC收件人。

我的方法是合併在陣列中的所有郵件,然後運行一個foreach循環,這樣的事情:

foreach($emails as $email) { 
    Mail::send(..... 
    { 
     $message->to($email); 
    }); 
} 

這是一個更好的方式來做到這一點?或者我可以遵循的其他更好的方法?

+1

如果你有很多用戶,在處理請求的同時做同步處理是個壞主意,因爲它很可能會超時。使用'Mail :: queue'將[郵件發送過程]排隊(http://laravel.com/docs/5.1/mail#queueing-mail)會更好。此外,如果您有很多用戶,則可能需要考慮使用單獨的服務來發送電子郵件,以避免在短時間內嘗試發送大量音樂時可能出現的任何問題。 – Bogdan

+0

我可以使用哪些單獨的服務? – nirvair

+2

這裏有很多,這取決於你是否在尋找免費服務。例如[Mailchimp](http://mailchimp.com/)和[Sendgrid](https://sendgrid.com/)有免費的計劃,允許您發送最多12000封電子郵件/月,或者您可以使用任何付費計劃取決於您的需求。您當然可以使用Laravel開箱即用的[Mandrill](https://www.mandrill.com/)或[Mailgun](https://www.mailgun.com/)。 – Bogdan

回答

0
if (!empty($users)) { 
    foreach ($users as $user) { 
     Mail::send('emails.acitvation', ['item' => $xyz, 'user' => $user], 
      function ($message) use ($user) { 
       $message->subject('your subject here'); 
       $message->to($user['email']); 
      }); 
    } 
}