Jump to content


Photo

Envio Em Massa De Email


  • Faça o login para participar
2 replies to this topic

#1 blackmind

blackmind

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 04/03/2009, 03:51

Boa noite,

Tenho que enviar mais de 2.000 emails em uma newsletter, a conta do meu cliente é da locaweb, entrei em contato com eles e em falaram que o lmite de envio é de 270 / Hora

entao estou enviando 1 a cada segundo, acontece apos uns 10 minutos da pagina de envio ficar carregando mostra isso

Erro interno do Servidor!
O servidor encontrou um erro interno e não foi possível completar sua requisição. O servidor está sobrecarregado ou existe um erro em um script CGI.

Se você acredita ter encontrado um problema no servidor, por favor entre em contato com o webmaster.

Error 500

aparentemente meu script esta certo, gostaria de possiveis solucoes, sei que tem a classe phpmailer mas nunca a utilizei, e gostaria de usar so em ultimo caso, vo colocar os codigos abaixo...

$sql = mysql_query("SELECT email, nome FROM empresas");
while ($vetor = mysql_fetch_array($sql)){
$emailbd = $vetor[id];
$nomebd = $vetor[nome];

/* Remetente */
$nome = 'Formatura.com.br';
$email = 'vendas@formatura.com.br';

/* Destinatário */
$nome_destino = $nomebd;
$email_destino = $emailbd;

/* assunto */
$subject = ".:: {$titulo} ::.";

/* mensagem */
$message = "
<html>
<head>
<title>.:: Formatura.com.br ::.</title>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
</head>
<body>
$conteudo
</body>
</html>";

/* Para enviar email HTML, você precisa definir o header Content-type. */
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* headers adicionais */
$headers .= "To: $nome_destino <$email_destino>\r\n";
$headers .= "From: $nome <$email>\r\n";


//aqui acho que é o grande problema, li algo sobre um flush mas nao endenti o funcionamento
sleep (4);

/* Enviar o email */
mail($email_destino, $subject, $message, $headers);

echo "Newsletter Enviada para o $emailbd<br>";

}
echo "<br><br>Newsletter Enviada teste<br>";



#2 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 04/03/2009, 15:13

Tente enviar 10 em um intervalo de 12 segundos usando sleep(). Eu uso locaweb também e não tem crise!

Abraços!

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#3 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 04/03/2009, 16:20

//aqui acho que é o grande problema, li algo sobre um flush mas nao endenti o funcionamento
sleep (4);

A cada loop, você está parando a execução por 4 segundos.

Vou montar um exemplo simples com FOR.

for ($i=1; $i<=5; $i++) {
	echo $i .'<br />';
	sleep(1);
}

Meu objetivo é gerar isso:

1
2
3
4
5


A cada loop, será feita uma pausa de 1 segundo. Só que na tela não vai aparecer número por número com uma pausa de 1 segundo, todos os números serão exibidos de uma vez depois de 5 segundos. Faça um teste...

Na minha opinião, teria que enviar 1 e-mail a cada 14 segundos. Total de 257 e-mails por hora, abaixo do limite de 270 por hora.
att,
Muller Dias
ex-administrador Fórum WMO




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq