Ir para conteúdo
Fórum Script Brasil
  • 0

Mail + While + Db > 400 Registros


hlegius

Pergunta

Pessoal,

Assim, surgiu uma dúvida do nada aqui...

Vamos supor que eu tenho um site e que nele há um sistema de cadastro e todos os dados são armazenados numa tabela do MySQL. Daí lá no meu painel de administração há um sistema que envia email em massa( Mala direta ) para os usuários cadastrados no site...

ficaria +/- assim:

<?

//...conecta a base e etc...

$lista = mysql_query("SELECT mail,nome FROM tbl_seila");

if(mysql_num_rows($lista) > 0){

  while($valor = mysql_fetch_array($lista)){

$maill = $dados['mail'];

$nome = $dados['nome'];

mail($maill, $assunto,$mensagem,$headers);

}

}else{

print "sei lá...";

};

?>

bacana iria enviar os emails para a cambada, porém se eu tiver 50 usuários beleza, 150 beleza também 300 opa começa o problema, mas ainda beleza...

1000 usuários! vish... um abraço sistema...por dois motivos simples e claros:

  • Iria demorar 1 ano e meio para percorrer toda a base
  • e para piorar o browser têm um tempo máximo para esperar uma resposta...depois disso dá timeout

então eu pergunto a vocês, vocês usam o método acima?

Eu cheguei a pensar em dividir o envio por partes por causa do timeout, porém, não iria adiantar pois o cara que envia os emails ficaria dois anos esperando? Não dá né...

até... smile.gif

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

O unico meio que vejo é setar esse set time limit e fazer o PHP enviar parte a parte, entende?

Tipo if($mails > 150){

mysql_query("select * ...");

while(....)

mail($...);

dai depois manda ele ver onde parou e continuar, daí o browser receberá uma resposta, entende?

até.. smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Sim... alguma coisa por aí seria uma boa mesmo.

Se você manda essas malas diretas com frequência eu sugeriria que você agendasse um script no servidor que fosse executado todos os dias, sei lá, as 5 da manhã [que é a hora mais vazia].

Aí esse script verifica se tem alguma coisa pra enviar, caso tenha, ele envia usando a set_time_limit() pra não parar no meio [pode dar inclusive uns sleep() no meio se você preferir]. Caso não tenha nada pra enviar o script não faz nada...

Eu faria dessa forma caso o envio fosse frequente... smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

é muito bem pensado....

poderia ao administrador escrever a mensagem (por exemplo) ela ser armazenada numa tabela e todo dia as 5am como você disse o sistema verificaria se havia algo e enviava, após o termino, ele deletava os registros da base...

Quem sabe depois eu faça algo só para ter uma idéia prática...

até... smile.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...