Script para enviar e-mails em grande quantidade

Publicado por Rodrigo Kulb 24/07/2008

[ Hits: 19.818 ]

Homepage: https://www.youtube.com/user/rodrigoKulb

Download news_auto.sys.php.txt




Este é um script para enviar e-mails em grande quantidade usando php e mysql bem simples de testar mais pode ser bem potente quando bem utilizado...

  



Esconder código-fonte

<?PHP


###########################################H4K3R
//By fOzY Joe e V1cT0r  09/07/2008
###########################################H4K3R

#
# Este é um script para enviar e-mails em grande quantidade com PHP



//configurações do banco 

$host   =   "HOST"; 
$banco   =   "BANCO"; 
$usuario   =   "USUARIO"; 
$senha   =   "SENHA"; 
$tabela   =   "malinha_direta"; 
$campos   =   "id,destinatario,status"; //campos da tabela 

//configurações do e-mail 
$subject   =   "Teste de newsletter Chata"; 
$body   =   "Testando um script de envio de newsletter em pacotes usando php e mysql <br><hr><br>By fOzY Joe e V1cT0r  09/07/2008"; 
$nome_remetente   =   "Seu Nome"; 
$email_remetente   =   "seu@email.com"; 

$quant = 10; //número de mensagens enviadas de cada vez 
$sec = 10; //tempo entre o envio de um pacote e outro (em segundos) 
 

//conect 
$conexao = mysql_connect($host,$usuario,$senha); 
mysql_select_db($banco); 


 
$ok = 0; 
$inicio = 0; 
$fim = $inicio + $quant; 
 

 
$sql = "select $campos from $tabela where status = 0 limit $inicio,$fim"; 
$query = mysql_query($sql,$conexao); 
$registros = mysql_num_rows($query); 


 
if($registros==0)
{ 
   mysql_query("update $tabela set status = 0"); 
   printf("<font face=’tahoma’>todas as mensagens foram enviadas!</font>"); 
   $ok = 1; 
} 
 

 
while($result = mysql_fetch_array($query))
{ 
   $id = $result[0]; 
   $to = $result[1]; 
   $status = $result[2]; 

   $headers = "From: $nome_remetente <$email_remetente>"; 
   mail($to,$subject,$body,$headers); 
   mysql_query("update $tabela set status = 1 where id = $id"); 
   printf("<font face=’tahoma’>$id ) mensagem para <b>$to</b> <font color=’#ff0000’><b>enviada com sucesso!</b></font></font>"); 
}  

 
mysql_free_result($query); 
mysql_close($conexao); 

 
if(!$ok)
{ 
   echo("<meta http-equiv=\"refresh\" content=\"" . $sec . "\">"); 
}
 
?> 

Scripts recomendados

E-mail Html

PHP SMTPmail v1.1

Variação de chec classe

Testando e-mail

phpmailbox-1.0


  

Comentários
[1] Comentário enviado por gregorye em 06/08/2008 - 18:43h

cade a tabela sql! vo te que fazer ela aqui! pois vc naun coloco junto!
vlw!

[2] Comentário enviado por RodrigoKulb em 06/08/2008 - 18:52h

Ta aqui o SQL

CREATE TABLE `sirin`.`malinha_direta` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`destinatario` VARCHAR( 200 ) NOT NULL ,
`status` VARCHAR( 200 ) NOT NULL
) ENGINE = MYISAM


abraços...

.:FoZy:.

[3] Comentário enviado por pellizzola em 22/08/2008 - 10:48h

Bom dia!
Gostaria de saber como posso incluir o codigo para ele enviar email em formato HTML, pois ele está enviando email em formato texto.

obrigado

[4] Comentário enviado por RodrigoKulb em 07/09/2008 - 19:39h

é só enriquecer seu heander por exemplo:

$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "From: SeuNome <seuemail@email.com.br>\n";
$headers .= "Cc: Nome \n";

falow.....

[5] Comentário enviado por gregorye em 22/09/2008 - 17:14h

Cara pra mim essa importação soh da erro:

consulta SQL:

CREATE TABLE `sirin`.`malinha_direta` (

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`destinatario` VARCHAR( 200 ) NOT NULL ,
`status` VARCHAR( 200 ) NOT NULL
) ENGINE = MYISAM

Mensagens do MySQL :

#1049 - Unknown database 'sirin'

[6] Comentário enviado por gregorye em 22/09/2008 - 17:33h

CREATE TABLE `malinha_direta` (

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`destinatario` VARCHAR( 200 ) NOT NULL ,
`status` VARCHAR( 200 ) NOT NULL
) ENGINE = MYISAM


Assim funcionou!

Vlw

[7] Comentário enviado por RodrigoKulb em 22/09/2008 - 17:40h

era o nome da minha base desculpa!!!
heeh!!!!

[8] Comentário enviado por f11sh em 07/01/2009 - 21:27h

Pessoal poderiam me ajudar, pois não estou conseguindo importar para dentro do phpmyadmin.
Está aparecendo esse erro na "hora" da importação.


Parece haver um erro na sua consulta SQL. A saída do servidor MySQL abaixo, isto se existir alguma, também poderá ajudar a diagnosticar o problema.

ERROR: String de pontuação desconhecida @ 1
STR: <?
SQL: <?PHP


###########################################H4K3R
//By fOzY Joe e V1cT0r 09/07/2008
###########################################H4K3R

#
# Este � um script para enviar e-mails em grande quantidade com PHP

//configuracoes do banco

$host = "debian";


consulta SQL:

Mensagens do MySQL : Documentação
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<?PHP

//By fOzY Joe e V1cT0r 09/07/2008

//configuracoes do banco

' at line 1

[9] Comentário enviado por RodrigoKulb em 08/01/2009 - 10:18h

este erro é porque você esta executando um script PHP na sua query do mysql isso é um programa não uma query.

a query para criação do banco foi postada pelo nosso amigo gregorye.

abraços.

[10] Comentário enviado por admtempos em 20/01/2009 - 11:53h

Muito bom o seu post me ajudou muito estarei testando e qualquer coisa esta devolta ou com duvidas ou com ajuda

[11] Comentário enviado por tsanches em 21/08/2010 - 15:18h

Dahora este post, vou testa-lo.
Cara essa comunidade é show de bola!!!!
Estamos de parabéns, um ajudando o outro, desse jeito o negócio funciona!
Valeu brothers!!!!
TSANCHES

[12] Comentário enviado por rixvoip em 16/04/2014 - 22:35h

Gente ! Já fiz tudo certinho... já linkei com o BD, mais e agora? Onde escrevo os emails para meus clientes? Me perdi!

[13] Comentário enviado por rogarfil em 03/08/2017 - 14:47h

Prezado Rodrigo,
Não estou conseguindo adaptar para PDO, ele entra com todos os dados mas não está processando:
<div class='container box-mensagem-crud'>
<?php
$conexao = conexao::getInstance();

// CONFIGURAÇÃO DOS E-MAILS (ASSUNTO, CORPO DE MENSAGEM, REMETENTE, E-MAIL DO REMETENTE)
$acao = (isset($_POST['acao'])) ? $_POST['acao'] : '';
$subject = (isset($_POST['subject_matter'])) ? $_POST['subject_matter'] : '';
$text = (isset($_POST['comment'])) ? $_POST['comment'] : '';

//configurações do e-mail
$nome_remetente = "Nome Remetente";
$email_remetente = "nois@site.com.br";

$quant = 10; //número de mensagens enviadas de cada vez
$sec = 10; //tempo entre o envio de um pacote e outro (em segundos)

$ok = 0;
$inicio = 0;
$fim = $inicio + $quant;


if($acao == 'enviar'):

$sql = 'SELECT id, name, email, status, created FROM newsletter WHERE status=:status GROUP BY email LIMIT $inicio, $fim';
try {

$stm = $conexao->prepare($sql);
$stm->bindValue(':status', 1);
$stm->execute();
$contar = $stm->rowCount();

if($contar == 0 ) {

while($news = $stm->fetch(PDO::FETCH_OBJ)) {

var_dump($subject,$text,$nome_remetente,$email_remetente,$sql,$news);
exit;
$id = $news->id;
$nome = $news->name;
$to = $news->email;
$status = $news->status;

$headers = "From: ".$nome_remetente." <".$email_remetente.">";
$headers = "Return-path: ".$nome_remetente." <".$email_remetente.">";
mail($to,$subject,$text,$headers, "-r". $email_remetente);
$sql = 'UPDATE newsletter SET status = 1';
printf("<font face='tahoma'>".$id.") mensagem para <b>".$to."</b> <font color='#ff0000'><b>enviada com sucesso!</b></font></font>");
$ok = 1;

}//while
} else {

echo '<li>Não existem newsletters cadastrados</li>';
}

} catch(PDOException $e) { $e->getMessage(); }

if(!$ok):
echo('<meta http-equiv=\"refresh\" content=\"' . $sec . '\">');

endif;

endif;
?>
</div>

Abraços,
Rogarfil


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts