Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pirata_

Relatório de erros ao enviar email

Recommended Posts

Bom dia pessoal..

 

Estou desenvolvendo uma newsletter para envio automático utilizando o mail() e estou com algumas dúvidas...

 

Vamos lá:

 

1) Tenho uma quantidade de 120 emails para enviar todo mês. Estou usando um sleep() de 3 segundos no while.. Está correto este método? O sleep() é o ideal / recomendado a utilizar nestes casos ?

 

2) Preciso verificar se o email foi entregue ou não, existe alguma header que verifica isso ?!

 

Acho que por enquanto é só!

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, o sleep é legal pra isso. Você pode dar um sleep, por exemplo, a cada 50 mensagens enviadas.

Até onde eu sei, não tem como verificar se a mensagem foi entregue. Você pode colocar uma imagem para verificar se a mensagem foi aberta, por exemplo:

 

<img src="http://www.seusite.com.br/imagem.php?id_destinatario=123" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, desse modo da imagem eu já estou usando... mas eu acredito que tenha como verificar se o email foi entregue sim..

eu andei conhecendo alguns sistemas que fazem isso.. mas não tive a oportunidade de ver o código deles..

:/

 

Quanto ao sleep de 50 em 50, é uma boa idéia, pq eu estava fazendo a cada 1 email..

De 50 em 50 teria que fazer tipo uma "paginação" ?

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Paginação ?? não entendi o que você quis dizer com paginação.

Bom, quanto à quantidade ideal, eu não sei te dizer, nem o tempo adequando de descanso entre um envio e outro. Aí você terá que testar para encontrar os melhores valores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

"paginação" pra enviar de 50 em 50...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah sim, você terá que colocar um contador:

 

$i=1;
foreach($emails AS $email_addr)
{
   mail($email_addr);
   if ($i >= 50)
   {
	  $i = 1;
	  sleep(segundos);
   }
   else
   {
	  $i++;
   }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim sim, ou:

 

$i = 0;

$i >= 50 ? sleep(5) : $i++;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais alguém tem idéia se existe algum modo de saber se realmente o email foi entregue ou não... ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

po cara a mesma duvida que eu

 

o sleep é muito bom sim

 

ainda tem o Usleep()

 

que ao inves de segundos ele trabalha com milisegundos (Caso queira um delay um pouco mais rapido)

 

 

Mais a segunda duvida e a mesma que a minha

 

vamos aguardar

 

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha dúvida é se nos clientes de email onde tem aquele pré-bloqueio de imagens no email ("exibir imagens abaixo"), se o arquivo seria chamado em seu servidor mesmo assim.

Não seria chamado, porque o cliente de e-mail impediu a requisição.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, eu faço com imagens..

Mas tem esses 2 problemas:

 

1) se o servidor bloquear, já era!

2) a imagem apenas serve pra você checar se ele abriu ou não o email!

 

E pra verificar se CHEGOU na caixa, se não está com caixa cheia, email não existe mais, essas coisas... como faz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara me explica ai como voce faz isso com imagem

 

explica exemplificando (Se puder)

 

pois ja me falaram dessa saída mais eu não entendi muito bem....

VLW

 

aguardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

RTDN:

 

No corpo do email, lá no final, você coloca assim:

 

<img src="index.php?contar=ID DO EMAIL" alt="" style="width:1px;height:1px" />

 

Dentro do arquivo contar.php você vai fazer a soma do campo, considerando que o ID DO EMAIL vai atualizar uma coluna com resultados de aberturas de email. Vamos supor que o campo é emails_lidos

 

UPDATE tabela SET emails_lidos = (emails_lidos +1) WHERE id = '".$_GET['id']."'

 

Sacou ?

 

 

 

Joajfjm:

 

Sim, retornar se o email não foi entregue pq o usuário está com caixa postal cheia, ou erro de resposta do servidor, essas coisas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.