Jump to content

Script para Mass-Mails evitando SPAM


Recommended Posts

Posted

Heyas,

aqui vai um pequeno script que elaborei para enviar Mass-Mailings mas evitando cair na designaçao SPAM.

Todos os emails que se recebem em que o nosso endereço nao se encontre no campo "TO:" sao considerados SPAM, e como tal, alguns provedores de mail conseguem fazer uma triagem disso bloqueando ou fazendo outra coisa qualquer.

O modo de se evitar o SPAM sera colocar os endereços de email na área "TO:", mas aqui entra-se no campo da privacidade, uma vez que se iria colocar INUMEROS endereços que ficariam visiveis para todos os receptores.

Entao, lembrei-me de criar um pequeno script que envia 1 email de minuto a minuto.

Para isto utilizei Bases-Dados MySQL, para conter a tabela com todos os endereços de email e uma outra tabela para guardar o número do email enviado (servirá para contagem).

Depois, so temos de comparar o numero que esta guardado na tabela "Contagem" com o tamanho da Array que vem da Query da tabela "Emails". Enquanto o numero da contagem for mais pequeno que o tamanho total dos mails, entao envia um email para o endereço que estiver na posiçao igual a contagem, e faz um UPDATE na tabela contagem para incrementar uma unidade.

Isto repete-se uma vez que utilizei um pequeno script de JavaScript para que o browser faça um Auto-Refresh de 1 em 1 minuto. (tento evitar que o servidor fique atafulhado).

Quando ultrapassamos o ultimo email, fazemos um "reset" na tabela "CONTAGEM" voltando ao "0" e fechamos automaticamente a janela do browser.

Parece-me que "funcemina".

Se alguem tiver uma coisa destas feita, curtia comparar para se melhorar.

Aqui vai o code:

<?php
mysql_select_db($database_teste, $teste);
$query_teste = "SELECT * FROM contagem";
$teste = mysql_query($query_teste, $teste) or die(mysql_error());
$row_teste = mysql_fetch_assoc($teste);
$totalRows_teste = mysql_num_rows($teste);

//----------------------
$numero = $row_teste['numero'];

//simula o retrieve da BD dos endereços de email
$data = array("email1","email2","email3","email4","email5","email6","email7","email8","email9","email10");

$arrayTamanho = count($data);
if ($numero < $arrayTamanho){
	$posicao = $numero;
$numeroNovo = $numero+1;
//echo $numeroNovo;
$query_actualiza = "UPDATE teste SET id='1',numero='$numeroNovo'";
mysql_query ($query_actualiza);
//echo $arrayTamanho;
//echo $data[$posicao];
               mail($data[$posicao],"Assunto","Mensagem");
}else{
$numeroNovo = 0;
$query_actualiza = "UPDATE teste SET id='1',numero='$numeroNovo'";
mysql_query ($query_actualiza);
echo "<script type='text/javascript'>
<!--
self.close();
-->
</script>";
}
?>

<html>
<head>
<script type="text/javascript">
<!--
setTimeout('location.href="http://localhost/teste.php"',1000);
-->
</script>
</head>
<body>
</body>
</html>

Fiquem bem

Edit : Adicionei a syntax de PHP - satanuke.

Ricardo Castelhano

-----------------------

FullStack Developer

Technical Manager

Trainer

Posted

Se isto for utilizado para o "bem" acho muito boa ideia, espero é q que não caia em mãos maliciosas.

O admin do Btuga tmb fez um programa que vai a uma base de dados e envia os e-mails um a um, seguidinhos.

Existem programas de mass mailing como o WorldCast, para newsletters ou mesmo SPAM que importam folhas de excel com os mails ou ficheiros .txt verificam se existem duplicações, se os endereços ainda existem e depois enviam-nos um a um com ou sem anexos.

O script está muito bom tenho de o experimentar.

Redcodestudio - Programação Web - http://www.redcodestudio.com/

  • 5 weeks later...
Posted
<?
$DBHost = "localhost";
$DBUser = "teste";
$DBPass = "teste";
$DBNome = "base_dados";

mysql_connect($DBHost, $DBUser, $DBPass) or die("ERRO!");
mysql_select_db($DBNome);

//-------------------------------------------------------


$mailQuery = mysql_query("SELECT * FROM emails");
while($mostrar = mysql_fetch_array($mailQuery))
{
	$mail = $mostrar['email'];
	mail($mail, "Assunto", "Mensagem");
}

mysql_close();
?>

Assim feito em cima do joelho acho que tambem envia o mail para todos os emals que estao na base de dados, mas no campo 'TO' so mostra a pessoa que o recebeu...

Um abraco...

  • 8 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.