Buen día bakunos devs!!!
Bueno para ir al grano tengo varias dudas para enviar correos masivos mediante PHP y MySQL
Bueno, para iniciar hice un módulo para realizar el envío masivo.
Mis codigos:
index.php
Bueno ahm la partes comentadas son para cuando realizo las pruebas,
Pero bueno ahora mis dudas son...
Resource Limits --> max_execution_time --> 30
Si uso
sleep();
Y son 2500 correos supera esos 30 segundos que me permite el servidor.
sleep(), reinicia ese contador?
Existe alguna otra manera de hacer lo que necesito?
Me aconsejan si han tenido este tipo de problemas y cual sería la mejor opción.
Otro dato:
El servidor se contrato exclusivamente para el envío de correos, por lo cual no tiene más tareas por hacer.
Muchas gracias, espero su apoyo ^^
EDITO
Buscando en la web, encontré:
set_time_limit (0);
Me permite poner en tiempo indefinido el script que ando manejando.
Omite la parte de:
Resource Limits --> max_execution_time --> 30
Que viene por default en mi servidor, acabo de ponerlo en practica a ver que me resulta, aún así espero sus opiniones.
Gracias!!!
Bueno para ir al grano tengo varias dudas para enviar correos masivos mediante PHP y MySQL
Bueno, para iniciar hice un módulo para realizar el envío masivo.
Mis codigos:
index.php
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Citimpuestos.com</title>
<link rel="shortcut icon" href="https://www.citimpuestos.com/favicon.ico" />
<link rel="icon" href="https://www.citimpuestos.com/favicon.ico" type="image/x-icon" />
<link rel="apple-touch-icon" href="https://www.citimpuestos.com/apple-touch-icon.png">
<link rel="stylesheet" href="http://yui.yahooapis.com/2.9.0/build/reset/reset-min.css">
<link rel="stylesheet" href="css/stylesheet.css">
<script src="../parser_rules/advanced.js" ></script>
<script src="../dist/jquery.js" ></script>
<script src="../dist/wysihtml5-0.3.0.min.js" ></script>
</head>
<body>
<div id="wysihtml5-editor-toolbar">
<header>
<ul class="commands">
<li data-wysihtml5-command="bold" title="Make text bold (CTRL + B)" class="command"></li>
<li data-wysihtml5-command="italic" title="Make text italic (CTRL + I)" class="command"></li>
<li data-wysihtml5-command="insertUnorderedList" title="Insert an unordered list" class="command"></li>
<li data-wysihtml5-command="insertOrderedList" title="Insert an ordered list" class="command"></li>
<li data-wysihtml5-command="createLink" title="Insert a link" class="command"></li>
<li data-wysihtml5-command="insertImage" title="Insert an image" class="command"></li>
<li data-wysihtml5-command="formatBlock" data-wysihtml5-command-value="h1" title="Insert headline 1" class="command"></li>
<li data-wysihtml5-command="formatBlock" data-wysihtml5-command-value="h2" title="Insert headline 2" class="command"></li>
<li data-wysihtml5-action="change_view" title="Show HTML" class="action"></li>
</ul>
</header>
<div data-wysihtml5-dialog="createLink" style="display: none;">
<label>
Link:
<input data-wysihtml5-dialog-field="href" value="http://">
</label>
<a data-wysihtml5-dialog-action="save">OK</a> <a data-wysihtml5-dialog-action="cancel">Cancel</a>
</div>
<div data-wysihtml5-dialog="insertImage" style="display: none;">
<label>
Image:
<input data-wysihtml5-dialog-field="src" value="http://">
</label>
<a data-wysihtml5-dialog-action="save">OK</a> <a data-wysihtml5-dialog-action="cancel">Cancel</a>
</div>
</div>
<a href="https://www.citimpuestos.com/">
<img src="https://www.citimpuestos.com/img/logotipo.jpg" title="Citimpuestos.com" alt="Citimpuestos.com" />
</a>
<section>
<div id="cargados"></div>
<form>
<input type="button" value="Enviar Correos" onclick="seleccionado();">
<br />
Correo:
<br />
<!--<input type="email" placeholder="usuario@servidor.ext" id="inputCorreo" /> -->
<br />
Asunto:
<br />
<input type="text" placeholder="Asunto del correo" id="inputAsunto" />
Mensaje del correo:
<hr />
<textarea id="inputMensaje" placeholder="Mensaje" style="height: 400px"></textarea>
</form>
</section>
<script>
var editor = new wysihtml5.Editor("inputMensaje", {
toolbar: "wysihtml5-editor-toolbar",
stylesheets: ["http://yui.yahooapis.com/2.9.0/build/reset/reset-min.css", "css/editor.css"],
parserRules: wysihtml5ParserRules
});
</script>
<script type="text/javascript">
function seleccionado(){
var inputMensaje = document.getElementById("inputMensaje").value;
//var inputCorreo = document.getElementById("inputCorreo").value;
var inputAsunto = document.getElementById("inputAsunto").value;
if (inputMensaje == "") {
$("#cargados").append("Llene todos los campos");
}
else{
var data = new FormData();
data.append('inputMensaje',inputMensaje);
//data.append('inputCorreo',inputCorreo);
data.append('inputAsunto',inputAsunto);
$.ajax({
url:'fnCorreo.php', //Url a donde la enviaremos
type:'POST', //Metodo que usaremos
contentType:false, //Debe estar en false para que pase el objeto sin procesar
data:data, //Le pasamos el objeto que creamos con los archivos
processData:false, //Debe estar en false para que JQuery no procese los datos a enviar
cache:false //Para que el formulario no guarde cache
}).done(function(msg){
$("#cargados").append(msg); //Mostrara los archivos cargados en el div con el id "Cargados"
});
}
}
</script>
</body>
</html>
PHP:
<?php
require("c0nf1g.php");
global $sys;
mysql_query("SET NAMES utf8");
$De = "noreply@citimpuestos.com";
$titulo = $_POST['inputAsunto'];;
$mensaje = $_POST['inputMensaje'];
//$Correo = htmlentities($_POST['inputCorreo']);
$mensaje = str_replace('\"', '"', $mensaje);
$headers = "From: <".$De.">\r\n";
$headers .= "Reply-To: \r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=utf8\r\n";
$headers .= "Disposition-Notification-To: <michelvato@hotmail.com>\r\n";
$headers .= "X-Confirm-Reading-To: <michelvato@hotmail.com>\r\n";
$qrCorreos = 'SELECT * FROM sys_tbcorreos';
$resultado = mysql_query($qrCorreos);
$i=0;
while ($row=mysql_fetch_array($resultado)){
$finalizado = mail($row['cpCorreo'],$titulo,$mensaje,$headers);
if ($finalizado) {
$i++;
echo '<strong>Se ha enviado el correo a:
'.$row['cpCorreo'].'
un segundo para enviar el siguiente correo.
<br />
';
sleep(1);
}
}
echo $mensaje;
if ($i==0) {
echo '<strong>No se envió ningun correo :(</strong>';
}
/*
if ($finalizado = mail($Correo,$titulo,$mensaje,$headers)) {
echo '<strong>Se ha enviado correctamente el siguiente correo a: '.$Correo.'<br />'.$mensaje.'</strong>';
}
else{
echo '<strong>Hubo algún problema, intentelo más tarde</strong>';
}
*/
?>
Pero bueno ahora mis dudas son...
Resource Limits --> max_execution_time --> 30
Si uso
sleep();
Y son 2500 correos supera esos 30 segundos que me permite el servidor.
sleep(), reinicia ese contador?
Existe alguna otra manera de hacer lo que necesito?
Me aconsejan si han tenido este tipo de problemas y cual sería la mejor opción.
Otro dato:
El servidor se contrato exclusivamente para el envío de correos, por lo cual no tiene más tareas por hacer.
Muchas gracias, espero su apoyo ^^
EDITO
Buscando en la web, encontré:
set_time_limit (0);
Me permite poner en tiempo indefinido el script que ando manejando.
Omite la parte de:
Resource Limits --> max_execution_time --> 30
Que viene por default en mi servidor, acabo de ponerlo en practica a ver que me resulta, aún así espero sus opiniones.
Gracias!!!