CakeEmail цикл не отправляется

У меня есть приложение, которое отправляет электронную почту, используя CakeEmail. Он работает на 100% нормально, если я отправляю одно электронное письмо, и я могу просмотреть его в своем почтовом ящике, и оно выглядит так, как должно.

Теперь, когда я помещаю один и тот же бит отправки в цикл, перебираю массив с уникальными ключами и пытаюсь отправить его, он даже не доставляет одну электронную почту.

Вот моя функция:

public function _email($data = null) {
    if ($data == null) {
        throw new NotFoundException(__('Invalid invite'));
    }
    if(count($data) == 1) {
        $data[0] = $data;
        unset($data['Invite']);
    }
    $email = new CakeEmail();
    foreach($data as $invite) {
        $this->Invite->id = $invite['Invite']['id'];
        $email->reset();
        $email->from(array('invites@example.co.za'=>'Invite'));
        $email->replyTo(array('replytoaddress@gmail.com'));
        $email->subject('subject');
        $email->to(array($invite['Invite']['email'] => $invite['Invite']['name']));
        $email->viewVars(array('key'=>$invite['Invite']['passkey'],'id'=>$invite['Invite']['id']));
        $email->template('default');
        $email->emailFormat('html');
        $email->send();
    }
    $this->Session->setFlash("Invite(s) sent out.");
    $this->redirect(array("action"=>"index"));
}

Как уже говорилось, если я передам 1 массив, такой как этот, он отправляет:

array(
    'Invite' => array(
        'id' => '13',
        'passkey' => '207ac02e711ec6c09c0e86e7af676e18d7f14308',
        'name' => 'Some Person',
        'email' => 'example@email.com',
        'partner' => '',
        'sent' => false,
        'response' => 'Pending',
        'created' => '2014-09-22 21:44:07',
        'modified' => '2014-09-22 21:44:07'
    )
)

Однако больше, чем один, как показано ниже, и он не работает без ошибок.

array(
    (int) 0 => array(
        'Invite' => array(
            'id' => '13',
            'passkey' => '207ac02e711ec6c09c0e86e7af676e18d7f14308',
            'name' => 'Some Person',
            'email' => 'example@email.com',
            'partner' => '',
            'sent' => false,
            'response' => 'Pending',
            'created' => '2014-09-22 21:44:07',
            'modified' => '2014-09-22 21:44:07'
        )
    ),
    (int) 1 => array(
        'Invite' => array(
            'id' => '14',
            'passkey' => '03fd8bdb6d91f2a30963034ff9e56317e3894eeb',
            'name' => 'another person',
            'email' => 'another@example.com',
            'partner' => '',
            'sent' => false,
            'response' => 'Pending',
            'created' => '2014-09-22 21:45:38',
            'modified' => '2014-09-22 21:45:38'
        )
    )
)

Что я делаю неправильно? У меня был $email = new CakeEmail(); внутри цикла я пробовал unset($email) в конце цикла я сделал все, что мог придумать. Тем не менее, он не отправляет.

РЕДАКТИРОВАТЬ 1

Вот результат, если я отлаживаю результат отправки. Я выбрал два письма.

/app/Controller/InvitesController.php (line 137)
array(
    'headers' => 'From: "Invite" <invites@example.co.za>
Reply-To: replytoaddress@gmail.com
X-Mailer: CakePHP Email
Date: Tue, 23 Sep 2014 07:46:43 +0200
Message-ID: <54210943231844fc81b3020cc69187ab@localhost>
MIME-Version: 1.0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit',
    'message' => '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
    <title>Emails/html</title>
</head>
<body>
    <div width="100%" style="text-align:center">
        <table width="300px">
    <tr>
        <td>
            <p style="font-size: 8px; color:#222222;">
                If this email does not display correctly, please click the yellow banner and allow images from this domain. Otherwise, click this link.
            </p>
        </td>
    </tr>
    <tr>
        <td>
            <img src="http://localhost/marike/img/email/tent.jpg" alt="" /><br><a href="http://localhost/marike/pages/home?i=13&amp;k=207ac02e711ec6c09c0e86e7af676e18d7f14308"><img src="http://localhost/marike/img/email/link.jpg" alt="" /></a>        </td>
    </tr>
</table>    </div>
</body>
</html>
'
)
/app/Controller/InvitesController.php (line 137)
array(
    'headers' => 'From: "Invite" <invites@example.co.za>
Reply-To: replytoaddress@gmail.com
X-Mailer: CakePHP Email
Date: Tue, 23 Sep 2014 07:46:43 +0200
Message-ID: <54210943c83c432b85e3020cc69187ab@localhost>
MIME-Version: 1.0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit',
    'message' => '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
    <title>Emails/html</title>
</head>
<body>
    <div width="100%" style="text-align:center">
        <table width="300px">
    <tr>
        <td>
            <p style="font-size: 8px; color:#222222;">
                If this email does not display correctly, please click the yellow banner and allow images from this domain. Otherwise, click this link.
            </p>
        </td>
    </tr>
    <tr>
        <td>
            <img src="http://localhost/marike/img/email/tent.jpg" alt="" /><br><a href="http://localhost/marike/pages/home?i=14&amp;k=03fd8bdb6d91f2a30963034ff9e56317e3894eeb"><img src="http://localhost/marike/img/email/link.jpg" alt="" /></a>        </td>
    </tr>
</table>    </div>
</body>
</html>
'
)

0 ответов

Другие вопросы по тегам