El cuento es q he encontrado un script al parecer sencillo el cual hace exactamente lo q yo quería, busca correos en una base de datos y envía los correos.
El detalle es q este script tiene dos modalidades de funcionar, por ejemplo:
1.- envía el correo a todos los suscritos
2.- envía el correo solo a los de un determinado país (seleccionado mediante una lista/menú)
el punto es que yo no necesito por ahora utilizar esas opciones, yo simplemente quiero enviárselo a todos los suscritos. El problema es que intente modificar el código para realizar esto pero no envía los correos, no se si cometí algún error ya que no soy experto en php.
Aquí los diferentes códigos....
CÓDIGO ORIGINAL:
Código PHP:
<?php
include("../../Connections/motos.php");
if (!isset($_POST['submit'])):
?>
<html>
<head>
<title>Mailing List</title>
</head>
<body>
<form method="post" action="<?=$_SERVER['PHP_SELF']?>">
<table align="center" bgcolor="#D6DEE7" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center">
<b><h2>MAILING LIST ADMIN</h2></b>
Send message to:
<select name="to" size="1" style="background-color: #F7F7F7">
<option selected value="all">Entire list
<option value="notall">By country
</select>
Country:
<select name="country" size="5">
<OPTION value="Argentina">Argentina
<OPTION value="Bolivia">Bolivia
<OPTION value="Brazil">Brazil
<OPTION value="Chile">Chile
<OPTION value="Colombia">Colombia
<OPTION value="Costa Rica">Costa Rica
<OPTION value="Ecuador">Ecuador
<OPTION value="Guatemala">Guatemala
<OPTION value="Honduras">Honduras
<OPTION value="Mexico">Mexico
<OPTION value="Nicaragua">Nicaragua
<OPTION value="Panama">Panama
<OPTION value="Paraguay">Paraguay
<OPTION value="Peru">Peru
<OPTION value="Puerto Rico">Puerto Rico
<OPTION value="Rep. Dominicana">Rep. Dominicana
<OPTION value="Uruguay">Uruguay
<OPTION value="Venezuela">Venezuela
</select>
Title or Subject: <input name="subject" type=text maxlength=100 size=40>
Message:
<textarea wrap name="message" rows=10 cols=45></textarea>
<input type=submit name="submit" value="SUBMIT">
</td>
</tr>
</table>
</form>
</body>
</html>
<?php else:
$to = $_POST['to'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$country = $_POST['country'];
if ("all" == $to) {
$x = 1;
$hold = 50; // quantity of emails sent before 3 sec delay
$emails = mysql_query("SELECT email FROM members");
while ($sendemail = mysql_fetch_array($emails)) {
$email = $sendemail["email"];
mail($email, $subject,
$message, "From:Your name <[email protected]>");
$x++;
if($x == $hold) { // When $x is equal to $hold, a 3 sec delay will occur avoiding php to timeout
sleep(3);
$x = 0;
}
} // end of while loop
} else {
$bycountry = mysql_query("SELECT email FROM members WHERE country = '$country'");
while ($countmail = mysql_fetch_array($bycountry)) {
$email = $countmail["email"];
$okemail = mail($email, $subject,
$message, "From:Your name <[email protected]>");
$x++;
if($x == $hold) { // When $x is equal to $hold, a 3 sec delay will occur avoiding php to timeout
sleep(3);
$x = 0;
}
} // end of while loop
}
?>
<html>
<head>
</head>
<body>
SUCCESS!
</body>
</html>
<?php endif; ?>
Código PHP:
<?php
include("../../Connections/motos.php");
if (!isset($_POST['submit'])):
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<p>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post" name="form1" id="form1" onsubmit="MM_validateForm('subject','','R','message','','R');return document.MM_returnValue">
<table width="53%" border="0" cellpadding="0" cellspacing="0" >
<tr>
<td width="21%" ><div align="right">Sujeto:</div></td>
<td colspan="3"><label>
<input name="subject" type="text" id="subject" size="60" />
</label></td>
</tr>
<tr>
<td class="KT_th"><div align="right">Mensaje:</div></td>
<td colspan="3"><label>
<textarea wrap name="message" cols="60" rows="10" id="message"></textarea>
</label></td>
</tr>
<tr>
<td></td>
<td width="11%"><label>
<input type="submit" name="Submit" value="Enviar" />
</label></td>
<td width="13%"><label>
<input type="button" name="Submit2" value="Cancelar" />
</label></td>
<td width="55%"> </td>
</tr>
</table>
</form>
<p> </p>
</p>
</body>
</html>
<?php else:
//$to = $_POST['to'];
$subject = $_POST['subject'];
$message = $_POST['message'];
//$country = $_POST['country'];
//if ("all" == $to) {
$x = 1;
$hold = 50; // quantity of emails sent before 3 sec delay
$emails = mysql_query("SELECT email FROM mailinglist");
while ($sendemail = mysql_fetch_array($emails)) {
$email = $sendemail["email"];
mail($email, $subject,
$message, "From: Nombre <[email protected]>");
$x++;
if($x == $hold) { // When $x is equal to $hold, a 3 sec delay will occur avoiding php to timeout
sleep(3);
$x = 0;
}
} // end of while loop
//}
/*<?php ?>else {
$bycountry = mysql_query("SELECT email FROM members WHERE country = '$country'");
while ($countmail = mysql_fetch_array($bycountry)) {
$email = $countmail["email"];
$okemail = mail($email, $subject,
$message, "From:Your name <[email protected]>");
$x++;
if($x == $hold) { // When $x is equal to $hold, a 3 sec delay will occur avoiding php to timeout
sleep(3);
$x = 0;
}
} // end of while loop
}<?php */
?>
<html>
<head>
</head>
<body>
Enviado!
</body>
</html>
<?php endif; ?>
Mi base de datos tiene solo dos campos, id, email.
Agradezco cualquier ayuda q me puedan prestar para lograr q esto envíe los correos.
Gracias...