我有以下函数,它应该向每个用户发送电子邮件。我相信在我的foreach循环中,我需要创建一个新的foreach循环来遍历每个电子邮件,并随后向这些用户中的每个人发送一封电子邮件,我该怎么做?
function getCronCuponDescargado(){
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$query = 'SELECT k2i.title, count(cs.item_id) as contador, cs.user_id, u.email
FROM #__k2_items as k2i
LEFT JOIN #__cuphoneo_subscripcion as cs ON cs.item_id = k2i.id
LEFT JOIN #__users as u ON u.id = cs.user_id
WHERE cs.estado = 1 GROUP BY cs.item_id ORDER BY cs.user_id';
$db->setQuery($query);
$result = $db->loadObjectList();
$query = 'SELECT count(item_id)
FROM #__cuphoneo_subscripcion
WHERE estado = 0';
$db->setQuery($query);
$resultado = $db->loadObjectList();
$mailer =& JFactory::getMailer();
$mailer->IsHTML(true);
$emailSubject = '¡Tus Cuphones!';
$sender = $mailer->From;
$fcontent = '<h2>Listado de cupones a los que estas suscrito:</h2>
<table>
<tr>
<th>Nombre del cupón</th>
<th>Tiempo restante de cupón</th>
</tr>';
foreach($result as $value){
$correoUser = $value->email;
$idUser = $value->user_id;
//Loop through array using foreach to send one email to each different user
$correos = array($correoUser => $idUser);
var_dump($correos);
$mailer->setSender($sender);
$mailer->addRecipient($correos);
$mailer->setSubject($emailSubject);
$fcontent .= '<tr>
<td>'.$value->title.'</td>
<td>'.$value->id.'</td>
<td>'.$value->contador.'</td>
</tr>';
}
$fcontent .= '</table>';
$mailer->setBody($fcontent);
$send =& $mailer->Send();
}
$correos
的值如下:
array(1) { ["davidfuertesrojas@gmail.com"]=> string(3) "118" } array(1) { ["victoryork87@gmail.com"]=> string(3) "119" }
$correos = array($correoUser => $idUser);
,而且你应该将$mailer->addRecipient($correos);
改为$mailer->addRecipient($correoUser);
。 - James