Laravel sending separate, multiple mail without using foreach loop

Ronser picture Ronser · Nov 11, 2014 · Viewed 9.2k times · Source

I am using Mail function in laravel under the SwiftMailer library.

Mail::send('mail', array('key' => $todos1), function($message) {
        $message->to(array('[email protected]','[email protected]','[email protected]','[email protected]'))->subject('Welcome!');
    });

The above function sends mail to several user, but the users know to who are all the mail is sent as its to address comprises of

To: [email protected], [email protected], [email protected], [email protected]

So inorder to rectify this I have used a foreach loop which sends the mails seperatly

    foreach($to as $receipt){
        //Mail::queue('mail', array('key' => $todos1), function($message) use ($receipt)
        Mail::send('mail', array('key' => $todos1), function($message) use ($receipt)
        {
            $message->to($receipt)->subject('Welcome!');
        });
    }   

The above code works fine...

My question is that in this advanced framework is there any function that could send mails to the users with unique to address (i.e.) without one user knowing to how-many others the same mail is sent without using a foreach...

Answer

Steve picture Steve · Nov 11, 2014

You can use bcc (blind carbon copy):

Mail::send('mail', array('key' => $todos1), function($message) {
    $message->to('[email protected]')
    ->bcc(array('[email protected]','[email protected]','[email protected]','[email protected]'))
    ->subject('Welcome!');
});