phpemailcakephpcakephp-2.0cakeemail

CakePHP : Send email to multiple addresses


I want to send an email with CakeEmail to multiple addresses (email address of the people who sign up in my website).

Here is my code I use :

public function send($d){
    $this->set($d);
    if($this->validates()){
        App::uses('CakeEmail','Network/Email');

        $users = $this->User->find('all');

        $this->set($tests);
        foreach($users as $user)
        {
            $tests .= '"'.$user['User']['email'].'",';
        }

        $mail = new CakeEmail();
        $mail
            ->to(array($tests)) 
            ->from(array('test2@test.fr' => 'Hello'))
            ->subject('ALERTE')
            ->emailFormat('html')
            ->template('ouverture')->viewVars($d);
            return $mail->send();

        }

    else{
        return false;
    }

    }

And here's my error :

Invalid email : ""test@test.com","test@test.fr","

Solution

  • Try

    $tests = array();
    foreach($users as $user)
    {
        $tests[] = $user['User']['email'];
    }
    
    $mail = new CakeEmail();
    $mail->to($tests) 
         ->from(array('test2@test.fr' => 'Hello'))
         ->subject('ALERTE')
         ->emailFormat('html')
         ->send('Your message here');