Mira, para simplificar la cosa, y que se verifique que el tema es que el array no contiene lo que debería contener, vamos a hacer un experimento a fin de que puedas ver que la lógica propuesta del foreach() es correcta, y si el result contuviese datos, andaría...
Fui a crear un array de arrays, tal como sería el resultado de una consulta como la tuya. El ejemplo sería así:
Código PHP:
Ver original
foreach($Clientes as $mail){
echo $mail[txtEmail];
}
$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";
La creación del array es algo desprolija (muestra algunos defectos), pero para el caso funcionará.
Al final, dumpeo el contenido de ambas cosas, con lo que tendremos ambas: el array de datos y las cabeceras generadas. De hecho puedes comprobar que es un simple copy+paste de lo que ya te propuse.
El resultado, al correrlo´, es este:
Como puedes apreciar en la prueba de ejemplo, no sólo el array contiene los datos con los que se crea, sino que además el "Bcc:" contiene la lista de los mismo mails encadenados con comas de separador.
Con esto quiero demostrarte lo que dije: La lógica del script es correcta, y si falla algo es que ese array
no contiene datos.
Ahora te toca a ti verificar por qué no están los datos que supuestamente deberían estar.
DE todos modos vi algunos defectos en el codigo que te pasé (menores, pero que afectan una parte de las cabeceras). Lo que yo propongo sería, entonces:
Código PHP:
Ver original<?php
$query_Clientes = "SELECT txtEmail FROM Publicidad_tbl ORDER BY Publicidad_tbl.idNombre";
$imagen = $_POST['imagen'];
$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, $titulo, $html, $cabeceras)) { echo "E-mail enviado exitosamente";
echo '<script language="JavaScript" type="text/javascript">
<![CDATA[
alert("Mensaje enviado!");
]]>
</script>
<SCRIPT LANGUAGE=javascript>
window.history.go(-1)
</SCRIPT>
';
} else {
echo 'Error!';
}
}
?>