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

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …


Курсы программирования от Skillbox. Черная пятница!
Подробнее >>>
×