Jump to content


Photo

Newsletter


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

#1 Ciclana

Ciclana

    Normal

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

Posted 22/09/2006, 10:53

Olá...

Tenho um sistema de newsletter pronto, só que estou enfrentando alguns problemas...

1- meu servidor de hospedagem só permite enviar 200 e-mails por hora (e tenho uns 370 e-mails cadastrados);
2- tem como enviar esses e-mails com confirmação de leitura? (qdo a pessoa lesse o e-mail, eu receberia uma confirmação, estilo do Outlook) -- RESOLVIDO --
3- o IG não recebe (não sei pq!!!) esses e-mails... já testei com o bol, yahoo, gmail, hotmail... todos recebem, menos o IG! :blink:

Agora estou tentando o N° 01...
Será que alguém poderia me dar um HELP??
É que não sei programar em PHP direito, mas tenho a lógica... Eu tentei... mas não deu mto certo...
Até que funcionou... mas ele está demorando 1 minuto (60 segundos) para enviar cada mensagem... e queria que enviasse 2 msgs, demoraria 1 minuto e enviaria mais 2... (apenas para exemplo).

<?php
// CONEXAO
$conexao=mysql_connect("conexao","usuario","senha");
$db=mysql_select_db("testenews",$conexao);
$Sql = mysql_query("SELECT * FROM testenews") or die (mysql_error());
$assunto = "teste";
$mensagem = "olá!";
$cont = 0;

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: email@dominio.com.br\r\n";
$headers .= "Disposition-Notification-To: email@dominio.com.br";


while ($RRr = mysql_fetch_array($Sql)) {
   $cont = $cont + 1;
   if ($cont = 2){
	sleep (60); }
if (mail($RRr['email'], $assunto, $mensagem, $headers)) {
   echo "E-mail [{$RRr['email']}] enviado com sucesso!<br />";
	} else {
	  echo "<font color='red'>Erro ao enviar o e-mail [{$RRr['email']}]!</font><br />";
	   }
	   }
?>

Se alguém puder me ajudar, agradeço!!

Edição feita por: Ciclana, 22/09/2006, 14:58.

Ciclana

#2 JCebidanes

JCebidanes

    Novato no fórum

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

Posted 12/10/2006, 11:47

Ciclana vc nao esta retornando o valor ce $cont para "0"...
Logo, $cont = 2 e depois $cont = $cont = $cont +1 ( sendo ele 2 ja entrara na clausula if )..faca assim:


while ($RRr = mysql_fetch_array($Sql)) {
$cont ++;
if ($cont = 2){
sleep (60);
$cont = 0;
}
if (mail($RRr['email'], $assunto, $mensagem, $headers)) {
echo "E-mail [{$RRr['email']}] enviado com sucesso!<br />";
} else {
echo "<font color='red'>Erro ao enviar o e-mail [{$RRr['email']}]!</font><br />";
}
}
?>



#3 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 12/10/2006, 14:30

Nesse caso provavelmente você terá que colocar no começo do código:

set_time_limit(0)

Para ler mais : set_time_limit()

#4 JCebidanes

JCebidanes

    Novato no fórum

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

Posted 12/10/2006, 15:18

kleryson,

O set_time_limit() serve para evitar entrar em loop infinito?

#5 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 13/10/2006, 07:42

Não...

Normalmente o que acontece os servidores PHP tem um tempo limit para ficar executando a mesma programação ...

Então o set_time_limit() serve para você eliminar esse tempo...

Pois se estourar o tempo limite de execução vai da um erro e não termina de executar a sua programação....

Mas cuidado alguns servidores são configurados para não aceitar essa setagem, ai teremos que arrumar uma outra forma...




0 user(s) are reading this topic

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

IPB Skin By Virteq