Nelly 0 Denunciar post Postado Janeiro 24, 2008 Olá a todos Eu estou fazendo uma newsletter mas estou com dúvida na páginação dos e-mails. No caso meu servidor permite apenas 200 e-mails por hora, então eu teria que dividir o envio. A lógica de fazer esta divisão que eu não sei como fazer. A único detalhe que eu pensei é que em cada registro com o e-mail, terá um campo, servindo como flag, com o valores: "enviado" ou "naoenviado". Como funciona esta lógica? Obrigado a todos! Compartilhar este post Link para o post Compartilhar em outros sites
Nelly 0 Denunciar post Postado Janeiro 24, 2008 Pessoal, Eu pensei na idéia de criar uma tabela secundário filtrar o envio.. o que acham? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 25, 2008 Você deve usar a função sleep() e flush(). Veja um exemplo semelhante aqui: http://forum.imasters.com.br/index.php...st&p=945325 http://www.php.net/sleep http://www.php.net/flush Compartilhar este post Link para o post Compartilhar em outros sites
leonardonobre 0 Denunciar post Postado Janeiro 25, 2008 Bom dia Nelly e Beraldo... Nelly, para fazer isso você terá que usar o timeout do javascript para poder fazer o processamento da página a cada x segundos... eu vou procurar um script que fiz para um cliente... não é dificil!! abraços, léo Compartilhar este post Link para o post Compartilhar em outros sites
leonardonobre 0 Denunciar post Postado Janeiro 25, 2008 Oi Nelly, tenho um link aqui que ensina a usar o settime... fácil http://unix.wmonline.com.br/js/tutoriais/c...js/javascr4.htm <html> <head> <script language="JavaScript"> <!-- Hide function moveover(txt) { window.status = txt; setTimeout("erase()",1000); // repara ak q a sintaxe dele é fácil... o que você quer fazer depois de quanto tempo?! manja??... } function erase() { window.status=""; } // --> </script> </head> <body> <a href="dontclck.htm" onMouseOver="moveover('Desaparecendo!');return true;"> link</a> </body> </html> qualquer dúvida posta ae, abraços, léo Compartilhar este post Link para o post Compartilhar em outros sites
Nelly 0 Denunciar post Postado Janeiro 26, 2008 Olá leonardonobre, e Beraldo Muito obrigado pela resposta. Quer dizer então que na prática, a melhor forma é usar um javascript que de tempo em tempo envie os e-mails correto? Beraldo, no caso qual seria a necessidade da função flush() para esta situação? obrigado a todos! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 26, 2008 Citei o flush(), mas a única utilidade seria caso você queira mostrar uma mensagem a cada execução do loop. Se não quiser mostrar, basta usar sleep(), sem flush(). Com JavaScript seria pior nesse caso, pois a página seria recarregada. Usando sleep(), você faz tudo num único script em uma única execução. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
leonardonobre 0 Denunciar post Postado Janeiro 27, 2008 Olá Beraldo, mas o timeout do PHP não iria "derrubar" a página ? São poucos os e-mails, mas imagine uma lista com 10 mil e-mails... Qual seria a melhor maneira? abraços, léo Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 27, 2008 O timeout padão do PHP é de 30 segundos, mas pode ser aumentado usando a função set_time_limit(). http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://www.php.net/set_time_limit Compartilhar este post Link para o post Compartilhar em outros sites
ze_violeiro 0 Denunciar post Postado Janeiro 27, 2008 é mas tem servidores que não permitem mudar essa diretiva, e agora ele permitem um certo numero de envios por hora, por isso talvez ele estenha procurando uma solução, eu fiz uma newsletter paginada porem não da maneira como eu gostaria ja que ele da refresh na página de envio passando um "indice" que é a paginação. Eu uso assim. session_start(); if(empty($_SESSION['Ultimo_id'])){ $_SESSION['Ultimo_id'] = 0; $_SESSION['Total'] = 0; $_SESSION['erro'] = 0; } $rs =& $db->query("select usuario,email,id from news_emails Where id > {$_SESSION['Ultimo_id']} and ativo='S' order by ID Limit {$qtdade_email}"); depois só verifico if($rs->EOF){ print "E-mail enviados"; }else{ //envio os e-mails } print "<br> total de e-mail enviados".$_SESSION['Total']; print "<br><a href=\"envia.php\" > clique aqui</a> se não for redirecionado automaticamente"; ?> <head> <meta http-equiv="refresh" content="<?=$intervalo?>; URL=envia.php"> </head> Bom é mais ou menos isso, porem não é uma maneira legal pra fazer, da pra fazer de outras maneiras e vou fazer depois. Compartilhar este post Link para o post Compartilhar em outros sites
Nelly 0 Denunciar post Postado Janeiro 30, 2008 Pessoal, Muito obrigado pelas respostas! Igual falaram, mas o que mais complica na paginação é a questão da limitação de envios por hora. No meu servidor eu posso enviar no máximo 200 e-mails em 1h. Eu estava imaginanando eu deixar o administrador gerenciar estas quantidade de envios por hora, tipo: Entrar no sistema e enviar do 1 ao 200, e no sistema informar ele que para continuar a enviar deverá esperar uma hora, e depois continuar do 201 ao 400. O que acham? Compartilhar este post Link para o post Compartilhar em outros sites
ze_violeiro 0 Denunciar post Postado Fevereiro 1, 2008 é o q eu faço Compartilhar este post Link para o post Compartilhar em outros sites