Bueno, tienes un par de errores conceptuales, pero nada que no se pueda solucionar rápidamente.
En primer lugar, mysql_fetch_asoc() no recupera el resultado completo, sino sólo una fila, y lo que haces es crear un array de una única entrada. Por consecuencia estás recorriendo algo que no se recorre, sencillamente.
Cita: Manual de referncia:
Descripción Devuelve un array asociativo que corresponde a la fila recuperada y mueve el puntero de datos interno hacia adelante. mysql_fetch_assoc() es equivalente a llamar a mysql_fetch_array() con MYSQL_ASSOC como segundo parámetro opcional.
Únicamente devuelve un array asociativo. En segundo lugar, debes siempre verificar que la consulta devuelva efectivamente algo, aunque sea nada más que por cuestiones preventivas.
Finalmente, lo que recorres con el
foreach es el mismo resource devuelto por la query. No necesitas otra cosa, no lo compliques.
Código PHP:
Ver original<?php
$query_Clientes = "SELECT txtEmail FROM Publicidad_tbl ORDER BY Publicidad_tbl.idNombre";
$asunto = $titulo;
$html = "aquí va el contenido";
$cabeceras = 'MIME-Version: 1.0' . "\r\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$cabeceras .= 'To: $email' . "\r\n";
$cabeceras .= 'From: $email ' . "\n";
$cabeceras .= 'Bcc:';
foreach ($Clientes as $mails) {
$cabeceras .= $mails['txtEmail'].",";
}
$cabeceras .= "\r\n";
if (mail($email, $asunto, $html, $cabeceras)) { echo '<script language="JavaScript" type="text/javascript">
//<![CDATA[
alert("Mensaje enviado!");
//]]>
</script>
<SCRIPT LANGUAGE=javascript>
window.history.go(-1)
</SCRIPT>
';
} else {
echo 'Error!';
}
}
?>