Ir para conteúdo

POWERED BY:

Arquivado

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

Crossdaline

Enviar vários emails

Recommended Posts

Eu tenho um BD que existem +1000 usuários cadastrados, então, eu quero criar um sistema de enviar email para todos eles.

 

Tipo, eu faço uma query e com um while e eu pego o email e chamo a função de enviar email?

 

É assim?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve verificar com seu host quantos e-mails eles permitem que sejam enviados por hora ou por dia, e daí você cria uma rotina para que o seu script envie a quantidade máxima permitida a cada período de tempo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, não exatamente.

A base do envio sim, você terá que fazer um loop para pegar todos os registros, porém:

 

Como forma de combate ao spam, administradores de servidores limitam o número de e-mails enviados por hora (ou por dia).

Existem 5 tipos principais de limites criado pelas empresas, que podem influenciar na mala-direta:

1 - Limite de desinatários por mensagem. Geralmente entre 50 e 100.

2 - Limite de tamanho de cada mensagem. Geralmente de 10MB a 50MB.

3 - Limite de QUANTIDADE de e-mails. Geralmente entre 200 a 700, ou, dependendo do servidor, valores maiores, devido ao fato de quem nem todos limitam por destinatários também.

4 - Limite de destinatários. Geralmente entre 800 e 2000.

5 - Limite diário de envio. Geralmente entre 4000 e 10000.

 

Todos os valores e tipos de bloqueios podem ser alterados, tudo depende da empresa.

 

Indo à parte prática, temos o seguinte:

 

1 - Você faz o while, de forma a pegar todos os e-mails separadamente e poder tratá-los para o envio.

2 - Você adiciona a capacidade do while de contagem para enviar para mais de um destinatário a cada e-mail.

3 - Você utiliza algum método para que o script fique em funcionamento mesmo ao se fechar o navegador. Podem ser usadas Cron Jobs ou esse método: http://www.hlegius.pro.br/alternativa-ao-cron-jobs-em-php/

 

Exemplo da parte 1 e 2. A 3 basta você adaptar com cron jobs ou com o método que passei aí em cima.

<?php
//inclua seu arquivo de conexão ao bd aqui
$res = mysql_query('SELECT `email` FROM `newsletter`');
$i = 0;
while ($x = mysql_fetch_assoc($res)) {
  ++$i;
  $emails[] = $x['email'];
  if ($i==4) {
    $emails = implode(',', $emails);
    mail (...); //faz o envio para os 5 destinatários
    $i = 0;
    unset($emails);
  }
}
?>
Você ainda deve adaptar para que esse valor X de mensagens seja por minuto. Com o exemplo do link que te mandei você consegue adaptar.

Uma coisa muito importante é saber QUAIS os tipos de bloqueio sua empresa executa, e QUAIS os valores de cada.

 

Até mais!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ei, tipo... Se eu colocar uns 10 destinatários.. Aquilo de CC CCo..

 

Quando eu colocar para enviar, e quando alguém for ler o email.. Não vai aparecer todos os emails que foram enviadas junto a aquela mensagem??

 

Porque, por exemplo no hotmail quando eu seleciono mais de 1 contato para enviar a mensagem.. qando vai ler a mensagem aparece todos os emails..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça um teste amigo. Nada melhor para tirar a própria dúvida doque testar.

 

Envie a mensagem para 3 e-mails seus como Cco e veja o que acontece ;)

 

Abraços.

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.