Ir para conteúdo

Arquivado

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

osk

Envio de E-mail em massa.

Recommended Posts

E ai galera vou dexar aqui um script em php, para quem envia newsletter atraves de um bd, fiquem avontade se quiser alterar acrescentar, tirar, etc...

 

Bem ele envia email por tempo, você pode alterar quantos email você vai enviar dentro de segundos, tem um painel simples com menu que criei so para funcionabilidade mesmo, tambem precisa fazer login para acessar a area!

 

Lembrando que esse script foi feito para ajudar aqueles que tem clientes cadastrados em seu db, ele não foi feito no intuido de enviar SPAM por que isso e crime

 

Vamos primeiro criar nosso db!

 

 

CREATE TABLE `newsletter` (  `id` int(4) NOT NULL auto_increment,  `email` varchar(120) NOT NULL default '',  `codStatus` int(1) NOT NULL default '0',  `bloqueado` int(11) NOT NULL default '0',  `enviado` int(11) NOT NULL default '0',  PRIMARY KEY  (`id`));

 

 

1º arquivo: Configurar o config.php, com os dados do db, e login de acesso ao script!

 

config.php

PHP
<?php

 

//mysql

$host = "Seu host";

$banco = "Seu db";

$usuario = "Seu usuario";

$senha = "Sua senha";

mysql_connect($host,$usuario,$senha);

mysql_select_db($banco);

 

//administrativo

$a_login = "Seu login"; //login do administrador

$a_senha = "Seu Senha"; //senha do administrador

 

?>

 

 

 

2º arquivo: no form.php você coloca sua configuração de email, e tambem precisa colocar os dados para conexão ao db.Esse aquivo e o principal entaum cuidado ao alterar as linhas, ele é responsavel em enviar os email!

 

formail.php

PHP
<?php

 

session_start("admin");

if($_SESSION["admin"] == "on"){

?>

 

<?PHP

 

 

// DADOS DE ACESSO AO BANCO MYSQL

$host = "Seu host";

$banco = "Seu db";

$usuario = "Seu usuario";

$senha = "Sua Senha";

 

$n = "nome do remetente";

$remetente = "email de quem esta enviando";

 

// NOME DA TABELA

$tabela = "newsletter";

// CAMPOS UTILIZADOS PARA A CONSULTA

$campos = "id, email";

// NUMERO MÁXIMO DE ENVIO

$quant = 1;

// TEMPO ENTRE UM PROCESSO DE ENVIO E OUTRO

$seg = 4;

 

 

 

$msg = "<html>

Sua Mensagem!!

</html>";

 

 

// DADOS DO EMAIL A SER ENVIADO

$assunto = "ASSUNTO";

 

// CONECTA COM O SERVIDOR MYSQL

mysql_connect($host,$usuario,$senha);

 

// SELECIONA O BANCO

mysql_select_db($banco);

 

// RESGATA O VALOR DA GLOBAL INICIO

$inicio = $_GET["inicio"];

 

// VERIFICA SE FOI ATRIBUIDO VALOR A VARIAVEL "INICIO"

if($inicio == ""){

// ATRIBUI O VALOR 0 CASO NÃO EXISTA VALOR ATRIBUIDO

$inicio = 0;

}else{

// ATRIBUI O VALOR DA GLOBAL INICIO CASO JA EXISTA VALOR ATRIBUIDO

$inicio = $_GET["inicio"];

}

 

// ATRIBUI O RESULTADO DA SOMA ENTRE INICIO E QUANT

$fim = $inicio + $quant;

 

// EXECUTA A CONSULTA OU INFORMA UM ERRO CASO OCORRA

$sql = mysql_query("SELECT ". $campos ." FROM ". $tabela ." WHERE enviado = 0 LIMIT ". $inicio .",". $quant)or die(mysql_error());

 

// VERIFICA SE AINDA EXISTEM EMAILS A SEREM ENVIADOS

if(mysql_num_rows($sql) == 0){

 

 

 

// INFORMO O TÉRMINO DO PROCESSO

echo "<span class='style1'>Fim do processo de envio!</span>";

}else{

 

// CONTINUA EFETUANDO O ENVIO

echo "<meta http-equiv="refresh" content="" . $seg . ",URL=?inicio=". $fim ."">";

}

 

// CRIA O LAÇO REPETITIVO

while($r = mysql_fetch_assoc($sql)){

 

// ADICIONAMOS OS PADRÕES DE DESTINATÁRIO

$para = $r['email'];

$id = $r['id'];

 

$cabecalho  = "MIME-Version: MSHTML 6.00.2900.3157rn";

$cabecalho .= "Content-Type: text/html; charset=windows-1252rn";

$cabecalho .= "From:$n<$remetente>rn";

$cabecalho .= "Reply-to:<$remetente>rn";

 

 

 

// ENVIA O EMAIL PARA O DESTINATÁRIO

if(mail($para, $assunto, $msg, $cabecalho)){

 

// INFORMA SE A MENSAGEM FOI ENVIADA

echo "<span class='style1'>Mensagem enviada para: $para ($id)</span>";

 

// ALTERO O CODSTATUS PARA 1

@mysql_query("UPDATE newsletter SET enviado = '1' WHERE email = '$para'");

}else{

 

// INFORMO SE A MENSAGEM NÃO FOI ENVIADA

echo "<span class='style1'>Mensagem não enviada para: $para ($id)</span>";

}

}

 

// LIBERA MEMORIA USADA NA CONSULTA

mysql_free_result($sql);

?>

<?php

}

?>

<style type="text/css">

<!--

body {

        background-color: #610000;

}

.style1 {

        color: #ff9a00;

        font-size: 18px;

}

-->

</style>

 

 

<br><a href="java script:history.back(1)">Voltar </a>

 

3º arquivo: adiciona.php nao altere nada. Ele adiciona um email para que você possa testar o envio!

 

adiciona.php

PHP
<?php

 

session_start("admin");

if($_SESSION["admin"]=="on"){

$email = $_POST["ad_mail"];

$codigo = md5($email);

include("config.php");

$verif = mysql_query("SELECT * FROM newsletter WHERE email = '$email'");

if(mysql_num_rows($verif)==1){

}else{

mysql_query("INSERT INTO newsletter(email, codStatus, bloqueado, enviado) VALUES

('$email','0','0','0')

");

}

echo "<span class='style1'>E-mail Adicionado com sucesso!</span>";

}

else{

echo "<script>location.href='login.php'</script>";

}

?>

<style type="text/css">

<!--

.style1 {

        color: #ff9a00;

        font-size: 20px;

}

-->

</style>

 

4º arquivo: login.php não altere. Responsavel para efetuar o login.

 

login.php

PHP
<?php

 

session_start("admin");

require ("config.php");

$acao = $_GET["acao"];

if($acao==""){?>

<style type="text/css">

<!--

.style1 {color: #ff9a00}

body {

        background-color: #610000;

}

-->

</style>

 

 

<table border="0" cellpadding="0" cellspacing="0" width="100%">

  <tr>

    <td width="100%" style="border: 1 solid #000000"><b><font face="Arial"><span class="style1"><font size="4"> >> Área Restrita </font></span><br>

      </font></b>

      <form method="POST" action="?acao=logar">

        <p align="center"><font face="Arial"><font size="2"><span class="style1">Usuário:</span><br>

        <input type="text" name="usuario" size="20" style="font-size: 8 pt; font-family: arial; border-style: solid; border-width: 1"><br>

        <span class="style1">Senha:</span><br>

        </font>

            <input type="password" name="senha" size="20" style="font-size: 8 pt; font-family: arial; border-style: solid; border-width: 1"><br>

        <input type="submit" value="Login" style="background-color: #FFFFFF; font-family: arial; font-size: 8 pt; border: 1 solid #000000"></font></p>

      </form>

    </td>

  </tr>

</table>

 

<?php

}

else {

if(($_POST["usuario"]==$a_login) AND ($_POST["senha"]==$a_senha)){

$_SESSION["admin"] = "on";

echo "<script>location.href='index.php'</script>";

}

else{

echo "<script>location.href='login.php'</script>";

}

}

?>

 

5º arquivo: logout.php nao altere.

 

logout.php

PHP
<?php

 

session_start("admin");

session_destroy();

echo "<script>location.href='login.php'</script>";

?>

 

6º arquivo: resetar.php nao altere.

PHP
<?php

session_start("admin");

if($_SESSION["admin"]=="on"){

require("config.php");

 

if (mysql_query("UPDATE newsletter SET enviado = '0' WHERE enviado = '1'")){

echo "<span class='style1'>Enviados zerado com sucesso</span>";}

 

 

 

}

else{

echo "<script>location.href='login.php'</script>";

}

 

?>

<style type="text/css">

<!--

.style1 {

        color: #ff9a00;

        font-size: 20px;

}

-->

</style>

<br><a href="java script:history.back(1)">Voltar </a>

 

7º arquivo: result_nao_enviados.php nao altere. Ele monstar quantos email ainda nao foram enviados!

 

result_nao_enviados.php

PHP
<?php

require("config.php");

 

 

$query = "SELECT * FROM  newsletter WHERE enviado = '0'";

$consulta = mysql_query($query);

$linhas = mysql_num_rows($consulta);

 

echo '<span class="style1"><p> FORAM ENCONTRADO(S) '.$linhas.' E-mail(S) Não Enviado(s)</p></span>';

 

for($n = 0; $n < $linhas; $n++){

  $registro = mysql_fetch_array($consulta);

 

    }

       

?>

<style type="text/css">

<!--

.style1 {

        color: #ff9a00;

        }

-->

</style>

 

8º arquivo: result_enviados.php nao altere. Ele monstra quantos email foram enviados!

 

result_enviados.php

PHP
<style type="text/css">

<!--

.style1 {

        color: #ff9a00;

        font-size: 16px;

}

-->

</style>

 

<?

require("config.php");

$query = "SELECT * FROM  newsletter WHERE enviado= '1' ";

$consulta = mysql_query($query);

$linhas = mysql_num_rows($consulta);

 

echo '<span class="style1"><p> FORAM ENCONTRADO(S) '.$linhas.' E-mail(S) Enviado(s)</p></span>';

 

for($n = 0; $n < $linhas; $n++){

  $registro = mysql_fetch_array($consulta);

  }    

  ?>

 

9º Arquivo: nossa index.php!

 

index.php

PHP
<?php

 

session_start("admin");

if($_SESSION["admin"] == "on"){

require "config.php";

?>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<style type="text/css">

<!--

body {

        background-color: #610000;

}

body,td,th {

        color: #ff9a00;

}

.style1 {font-size: 24px}

-->

</style></head>

 

<body>

<p class="style1">Área Administrativa</p>

<table width="200" border="0" align="center">

  <tr>

    <th scope="col"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="560" height="50">

      <param name="movie" value="menu/doors.swf">

      <param name="quality" value="high">

      <embed src="menu/doors.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="560" height="50"></embed>

    </object></th>

  </tr>

</table>

<p align="center" class="style1"><iframe src="" height="400" width="600" name="cont"></iframe>

</p>

<p> </p>

</body>

</html>

<?php

}

else{

echo "<script>location.href='login.php'</script>";

}

?>

 

10º Arquivo: adicionar.php esse e o form para adicionar o email!

 

adicionar.php

PHP
<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<title>Untitled Document</title>

<style type="text/css">

<!--

body {

        background-color: #610000;

}

.style1 {

        color: #ff9a00;

        font-size: 24px;

}

-->

</style></head>

 

<body>

<div align="center">

  <p class="style1">

  Para adicionar E-mails. Preencha o campo abaixo e clique em adicionar! </p>

  <form name="form1" method="post" action="adiciona.php">

    <label>

      <input name="ad_mail" type="text" id="ad_mail" size="30">

      <br>

      <br>

    </label>

    <label>

    <input type="submit" name="Submit" value="Adicionar">

    </label>

  </form>

  <p class="style1"> </p>

</div>

</body>

</html>

 

 

 

Muito bem esse o script, vou colocar aqui o link completo com os menus !

http://w15.easy-share.com/10815881.html

 

Qualquer duvida poste no forum!

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opah, parece ser um script bom, mas encontrei um erro, não sei se aconteceu só comigo ou teve mais pessoas com o mesmo problema. da um erro no formail.php linha 72. Veja Abaixo:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/arenahos/public_html/newsletter/formail.php on line 72

Já tentei mecher na linha, mas não consegui arumar. O conteudo da linha é esta:
echo "<meta http-equiv="refresh" content="" . $seg . ",URL=?inicio=". $fim ."">"
Você sabe oque pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem ate agora ninguem falo nada mas tente alterar, talvez seu servidor nao entenda,tente isso:

 

PHP
echo "<meta http-equiv='refresh' content='" . $seg . ",URL=?inicio=". $fim ."'>";

ou

PHP
echo "<meta http-equiv='refresh' content='$seg,URL=?inicio= $fim'>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora funcionou, usei o primeiro código que você postou e funcionou perfeitamente.Agora vou tentar codar um sistema de cadastro para a newsletter e pra remover o cadastro.Muito Obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, estou tendo um problema no script form.php na ultima linha.

Parse error: syntax error, unexpected $end in C:\xampp\htdocs\newsletter\formail.php on line 125

ja tentei de tudo, mas não consegui fixar istodesde ja obrigado.EDIT: Fixado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Renegate, você modificou alguma coisa? Porque o form.php so tem 123 linhas !Se você alterou poste seu code !

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo baixei seu sistema e ta faltando o arquivo formail.php não modifiquei nadaNão existe o arquivo ou a pastaURL não existe /newsletter/formail.php- Consulta de pasta:/newsletter/ - existre- Arquivos dentro da pasta /newsletter//newsletter/ adiciona.php/newsletter/ adicionar.php/newsletter/ config.php/newsletter/ form.php/newsletter/ index.php/newsletter/ login.php/newsletter/ logout.php/newsletter/ resetar.php/newsletter/ result_enviados.php/newsletter/ result_nao_enviados.php Pasta Sub-Pasta Arquivo/newsletter/ menu/ btn_adicionar.swf/newsletter/ menu/ btn_enviar.swf/newsletter/ menu/ btn_reset.swf/newsletter/ menu/ doors.swf- O arquivo "formail.php" não existe na pasta /newsletter/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem ate agora ninguem falo nada mas tente alterar, talvez seu servidor nao entenda,tente isso:

 

PHP
echo "<meta http-equiv='refresh' content='" . $seg . ",URL=?inicio=". $fim ."'>";

ou

PHP
echo "<meta http-equiv='refresh' content='$seg,URL=?inicio= $fim'>";

 

Olá, já tentei essas duas linhas, e aconteceu os seguintes erros....

 

Warning: mysql_connect() [function.mysql-connect]: Unknown MySQL server host 'Seu host' (2) in /home/restricted/home/liapapelaria/public_html/cadastro/formail.php on line 39

 

Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/restricted/home/liapapelaria/public_html/cadastro/formail.php on line 42

 

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /home/restricted/home/liapapelaria/public_html/cadastro/formail.php on line 42

 

Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/restricted/home/liapapelaria/public_html/cadastro/formail.php on line 60

 

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/restricted/home/liapapelaria/public_html/cadastro/formail.php on line 60

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, já tentei essas duas linhas, e aconteceu os seguintes erros....

 

Warning: mysql_connect() [function.mysql-connect]: Unknown MySQL server host 'Seu host' (2) in /home/restricted/home/liapapelaria/public_html/cadastro/formail.php on line 39

 

Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/restricted/home/liapapelaria/public_html/cadastro/formail.php on line 42

 

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /home/restricted/home/liapapelaria/public_html/cadastro/formail.php on line 42

 

Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/restricted/home/liapapelaria/public_html/cadastro/formail.php on line 60

 

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/restricted/home/liapapelaria/public_html/cadastro/formail.php on line 60

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Primeiramente, bem-vindo ao iMasters, Alex Bazzo!

 

Altere esta parte, com as informações do seu servidor MySQL:

<!--php--><div class='highlight_syntax_top'>PHP</div><div class='highlight_syntax_main'><!--php1--><div class="php">//mysql

$host = "Seu host";

$banco = "Seu db";

$usuario = "Seu usuario";

$senha = "Sua senha";

</div><!--php2--></div><!--php3-->

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como faço para excluir usuarios???

você pode fazer isso direto no banco de dados, mas pode criar um excluir.php tambem !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola!

 

Achei bem interessante o seu sistema e gostaria de saber se seria possível ao invés de mandar um simples html na mensagem eu adicionar uma imagem.

Qual seria o código para adicionar uma imagem junto ao email.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola!

 

Achei bem interessante o seu sistema e gostaria de saber se seria possível ao invés de mandar um simples html na mensagem eu adicionar uma imagem.

Qual seria o código para adicionar uma imagem junto ao email.

 

Obrigado.

Sim claro você pode fazer como se fosse uma pagina em html normal, mas so que ao inves de você usar duas aspas " você usa uma so ' entedeu?

<html>
<head>
<img src='caminho_da_imagem.jpg' width='390' height='235'>
</head>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha cara ter ate, mas estou meio sem tempo de fazer alguma coisa agora. Talvez mais pra frente eu faça um pra você !

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.