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

Ótima contribuição.

 

Acho q falta uma opção para remover e-mail, pensei de uma forma bem pratica, você criaria um campo na tabela chamado senha, e nos e-mail enviados você adicionaria uma mensagem com o link excluir.php?mail=$email&senha=senha do banco de dados em md5 se a senha e o e-mail fosse correta colocaria e-mail excluido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ótima contribuição.

 

Acho q falta uma opção para remover e-mail, pensei de uma forma bem pratica, você criaria um campo na tabela chamado senha, e nos e-mail enviados você adicionaria uma mensagem com o link excluir.php?mail=$email&senha=senha do banco de dados em md5 se a senha e o e-mail fosse correta colocaria e-mail excluido.

 

Entaum esse campo ja existe q e o campus status ou bloqueado, q ao inves de remover e você perder o email ele so muda o status para 1, assim você pode ter um controle de quantos email estao sendo desativados, mas claro que esse e um codigo livre , entaum quem usa pode fazer algumas mudanças como quiser.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ótima contribuição.

 

Acho q falta uma opção para remover e-mail, pensei de uma forma bem pratica, você criaria um campo na tabela chamado senha, e nos e-mail enviados você adicionaria uma mensagem com o link excluir.php?mail=$email&senha=senha do banco de dados em md5 se a senha e o e-mail fosse correta colocaria e-mail excluido.

 

Entaum esse campo ja existe q e o campus status ou bloqueado, q ao inves de remover e você perder o email ele so muda o status para 1, assim você pode ter um controle de quantos email estao sendo desativados, mas claro que esse e um codigo livre , entaum quem usa pode fazer algumas mudanças como quiser.

 

Então, osk, eu já to usando seu script e fiz as modificações que faltavam tipo:

- criei uma página para digitar a mensagem (com editor que formata), assunto, tempo e quantidade, esses dados são jogados numa tabela, qdo o programa vai enviar os e-mails ele seleciona a mensagem gravada na tabela.

- criei um campo senha e qdo ele for enviar os e-mails ele envia uma link para excluir

- tirei o flash tb para agilizar

 

o que acho importante q falta no seu código é uma condição para enviar e-mail somente para quem tem status 0 no bloqueado, eu adicionei isso no meu código.

 

qdo puder eu posto algumas mods

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ótima contribuição.

 

Acho q falta uma opção para remover e-mail, pensei de uma forma bem pratica, você criaria um campo na tabela chamado senha, e nos e-mail enviados você adicionaria uma mensagem com o link excluir.php?mail=$email&senha=senha do banco de dados em md5 se a senha e o e-mail fosse correta colocaria e-mail excluido.

 

Entaum esse campo ja existe q e o campus status ou bloqueado, q ao inves de remover e você perder o email ele so muda o status para 1, assim você pode ter um controle de quantos email estao sendo desativados, mas claro que esse e um codigo livre , entaum quem usa pode fazer algumas mudanças como quiser.

 

Então, osk, eu já to usando seu script e fiz as modificações que faltavam tipo:

- criei uma página para digitar a mensagem (com editor que formata), assunto, tempo e quantidade, esses dados são jogados numa tabela, qdo o programa vai enviar os e-mails ele seleciona a mensagem gravada na tabela.

- criei um campo senha e qdo ele for enviar os e-mails ele envia uma link para excluir

- tirei o flash tb para agilizar

 

o que acho importante q falta no seu código é uma condição para enviar e-mail somente para quem tem status 0 no bloqueado, eu adicionei isso no meu código.

 

qdo puder eu posto algumas mods

 

 

Legal depois posta ai pra gente.

 

Eu ate usava o status e bloqueado , mas depois vi que pra min nao tinha muita utilidade ai tirei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tabela com o campo senha

 

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',
  `senha` varchar(32) NOT NULL default '',
  PRIMARY KEY  (`id`));

Cria a senha

 

adiciona.php

<?php
session_start("admin");
if($_SESSION["admin"]=="on"){
$email = $_POST["ad_mail"];
$codigo = md5($email);
require("config.php");
$verifica = mysql_query("SELECT * FROM newsletter WHERE email = '$email'");
if(mysql_num_rows($verifica)==1){
}else{
function gerador($numchar){  
   $letras = "1,2,3,4,5,6,7,8,9,0";  
   $array = explode(",", $letras);  
   shuffle($array);  
   $senha = implode($array, "");  
   return substr($senha, 0, $numchar);  
} 
$nums=gerador(6);
$nums=md5($nums);
mysql_query("INSERT INTO newsletter (email, codStatus, bloqueado, enviado, senha) VALUES('$email','0','0','0','$nums')");
}
echo "E-mail Adicionado com sucesso!";
}
else{
echo "Você não possui acesso a está seção";
}
?>

para redigir a mensagem é necessário baixar o arquivo richtext em dynamicdrive.com

<script language="JavaScript" type="text/javascript" src="richtext_compressed.js"></script>
<form name="RTEDemo" action="criamsg.php" method="post" onSubmit="return submitForm();">
<p>Assunto: 
  <input name="assunto" type="text" id="assunto" />
  Quantidade:
  <input name="quant" type="text" id="quant"/> 
  Intervalo(tempo):
  <input name="seg" type="text" id="seg"/>
</p>

<script language="JavaScript" type="text/javascript">
<!--
function submitForm() {
	//make sure hidden and iframe values are in sync before submitting form
	//to sync only 1 rte, use updateRTE(rte)
	//to sync all rtes, use updateRTEs
	//updateRTE('rte1');
	updateRTEs();
	return true;
}

//Usage: initRTE(imagesPath, includesPath, cssFile)
initRTE("images/", "", "");
//-->
</script>
<noscript><p><b>Javascript must be enabled to use this form.</b></p></noscript>

<script language="JavaScript" type="text/javascript">
<!--
//Usage: writeRichText(fieldname, html, width, height, buttons, readOnly)
writeRichText('rte1', 'digite a msg aqui"', 750, 300, true, false);

</script>
<p>
  <input type="submit" name="submit" value="Enviar">
</p>
</form>

criamsg.php para adicionar a msg

<?php
session_start("admin");
if($_SESSION["admin"] == "on"){
?>
<?PHP
require("config.php");
$msg=$_POST["rte1"];
$quant=$_POST["quant"];
$seg=$_POST["seg"];
$assunto=$_POST["assunto"];
$data=date("Y-m-d");
$hora=date("H:i:s");
$sql="INSERT INTO mensagens (msg, assunto, quant, seg, data, hora) VALUES ('$msg','$assunto','$quant','$seg', '$data','$hora')";
if (mysql_query($sql)) {
$sql3=mysql_query("SELECT * FROM mensagens WHERE data='$data' AND hora='$hora' LIMIT 1"); $r = mysql_fetch_array($sql3); $id=$r["id"];
?><a href="formail.php?msg=<? echo $id; ?>">Enviar mensagem </a><?
}
}
?>

formail.php

 

depois de salva a msg na tabela ele envia os e-mails para quem tem o campo bloqueado = 0, esse pode ser retirado caso prefira usar o comando DELETE ao invés de UPDATE em tira.php

 

<?php
session_start("admin");
if($_SESSION["admin"] == "on"){

$idd=$_GET["msg"];
$data=date("Y-m-d");
$hora=date("H:i:s");
$sql5=mysql_query("SELECT * FROM mensagens WHERE id='$idd' LIMIT 1");
$rs=mysql_fetch_array($sql5);
$assunto=$rs["assunto"];
$msge=$rs["msg"];
$seg=$rs["seg"];
$quant=$rs["quant"];
mysql_free_result($sql5);

if ($msge!="" && $seg!="" && $quant!="" && $assunto!="") {

require("config.php");
$n = "de";
$remetente = "email de";
// DADOS DO EMAIL A SER ENVIADO
// RESGATA O VALOR DA GLOBAL INICIO
$inicio = $_GET["inicio"]; // VERIFICA SE FOI ATRIBUIDO VALOR A VARIAVEL "INICIO"
if($inicio == ""){
$inicio = 0; // ATRIBUI O VALOR 0 CASO NÃO EXISTA VALOR ATRIBUIDO
}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 id, email, bloqueado, senha FROM newsletter WHERE bloqueado = '0' AND 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 "Fim do processo de envio!";
}else{
// CONTINUA EFETUANDO O ENVIO
echo "<meta http-equiv='refresh' content='$seg,URL=formail.php?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'];
$ver = $r['senha'];
$cabecalho  = "MIME-Version: MSHTML 6.00.2900.3157\r\n";
$cabecalho .= "Content-Type: text/html; charset=windows-1252\r\n";
$cabecalho .= "From:$n<$remetente>\r\n";
$cabecalho .= "Reply-to:<$remetente> \r\n";
$msg = "<html><head><title>titulo<br>
<br>
$msge
<br>
<a href='tira.php?ver=$ver&endereco=$para'> Excluir dessa lista</a>
</html></body>";
// ENVIA O EMAIL PARA O DESTINATÁRIO
if(mail($para, $assunto, $msg, $cabecalho)){
// INFORMA SE A MENSAGEM FOI ENVIADA
echo "Mensagem enviada para: $para ($id)";
// 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 "Mensagem não enviada para: $para ($id)";
}
}
// LIBERA MEMORIA USADA NA CONSULTA
mysql_free_result($sql);
?>
<?php
} }
?>
tira.php, seria bom uma pergunta...
<?
$ver=$_GET["ver"];
$endereco=$_GET["endereco"];
$valor="1";
require("arquivoqueconectaaobd");
$sql="UPDATE newsletter SET bloqueado = '$valor' WHERE senha='$ver' AND email='$endereco'";
// ou o comando DELETE...
if (mysql_query($sql)) {echo "E-mail excluido";} else {echo "Erro"; }
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando faço o login ele volta para pagina de login. parece erro na sessoin start

Olha cristianobcn você alterou alguma coisa?

 

Qual e o erro q aparece?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não alterei nada apenas as senhas de acesso ao bd e a de acesso ao sistema.

 

ela não apresenta erro apenas volta para pagina inicial

 

<?php

 

//mysql

$host = "localhost";

$banco = "teste";

$usuario = "root";

$senha = "123";

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

mysql_select_db($banco);

 

//administrativo

$a = "teste"; //login do administrador

$a_senha = "teste"; //senha do administrador

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

nknk, o 3o. codigo e para qual arquivo de script ?

 

Oi, o terceiro código você pode salvar como escrever.php e ele servirá para você redigir a mensagem a ser enviada, ela sera salva em uma tabela que servirá qdo for enviar a mensagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando faço o login ele volta para pagina de login. parece erro na sessoin start

Como você poder ver abaixo se a senha estiver errado ele vai retornar para login ao inves de index.

 

Eu ate testei aqui e deu certinho !

 

<?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>";
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei uma olhada no seu sistema, ele é muito legal mesmo!

 

Configurei uma parte dele junto com o meu codigo e deu praticamente tudo certo, só tem um problema ele só está mandando a primeira mensagem corretamente com todos os dados nos outros e-mails chega a mensagem mas sem os dados tipo assunto, conteudo etc.

 

Você pode me dá mas esse toque?

 

Desde ja agradeço pela atenção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei uma olhada no seu sistema, ele é muito legal mesmo!

 

Configurei uma parte dele junto com o meu codigo e deu praticamente tudo certo, só tem um problema ele só está mandando a primeira mensagem corretamente com todos os dados nos outros e-mails chega a mensagem mas sem os dados tipo assunto, conteudo etc.

 

Você pode me dá mas esse toque?

 

Desde ja agradeço pela atenção!

Posta ai o seus arquivos completos pra min dar uma olhada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei uma olhada no seu sistema, ele é muito legal mesmo!

 

Configurei uma parte dele junto com o meu codigo e deu praticamente tudo certo, só tem um problema ele só está mandando a primeira mensagem corretamente com todos os dados nos outros e-mails chega a mensagem mas sem os dados tipo assunto, conteudo etc.

 

Você pode me dá mas esse toque?

 

Desde ja agradeço pela atenção!

Posta ai o seus arquivos completos pra min dar uma olhada!

 

 

<?php

include "../../Connections/conn2.php";

 

// DADOS DE ACESSO AO BANCO MYSQL

 

 

$n = "Instituto Prosaber";

$remetente = "prosaber@institutoprosaber.com.br";

 

// NOME DA TABELA

$tabela = "tbnews";

// CAMPOS UTILIZADOS PARA A CONSULTA

$campos = "idnews, email";

// NUMERO MÁXIMO DE ENVIO

$quant = 1;

// TEMPO ENTRE UM PROCESSO DE ENVIO E OUTRO

$seg = 1;

 

// Recebendo os dados do form

 

$titulo = $_POST["txttitulo"];

$assunto = $_POST["txtassunto"];

$data = $_POST["txtdata"];

$texto = $_POST["txtcorpo"];

 

$corpo =

'<style type="text/css">

<!--

.formass {

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 12px;

font-weight: bold;

color: #0000FF;

text-align: center;

}

.formtitulo {

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 12px;

font-weight: bold;

color: #003399;

text-align: left;

}

.formcam {

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 12px;

font-weight: bold;

color: #000000;

text-align="left"

}

-->

</style>

</head>

 

<body>

<table width="500" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="87" class="formcam">Enviado Por:</td>

<td width="280" class="formtitulo">'.$titulo.'</td>

<td width="40" class="formcam">Data:</td>

<td width="93" class="formtitulo">'.$data.'</td>

</tr>

<tr>

<td colspan="4" class="formcam"> </td>

</tr>

<tr>

<td colspan="4">'.$texto.'</td>

</tr>

</table>';

 

// CONECTA COM O SERVIDOR MYSQL

mysql_connect($hostname_conn2, $username_conn2, $password_conn2);

 

// SELECIONA O BANCO

mysql_select_db($database_conn2);

 

// 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

$destino = $r['email'];

$id = $r['idnews'];

$para = strtolower($destino);

 

$cabecalho = "MIME-Version: MSHTML 6.00.2900.3157\r\n";

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

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

$cabecalho .= "Bc:<$para> \r\n";

 

 

include_once('/home/institutoprosabe/ultramail/ultramail.php');

// ENVIA O EMAIL PARA O DESTINATÁRIO

 

if ( UltraMail($para, $assunto, $corpo, $cabecalho) == TRUE )

{

// INFORMA SE A MENSAGEM FOI ENVIADA

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

 

// ALTERO O CODSTATUS PARA 1

@mysql_query("UPDATE tbnews 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 ($idnews)</span>";

}

}

 

// LIBERA MEMORIA USADA NA CONSULTA

mysql_free_result($sql);

?>

<style type="text/css">

<!--

body {

background-color: #F0F0F0;

}

.style1 {

color: #ff9a00;

font-size: 18px;

}

-->

</style>

 

 

<br><a href="../aluno/adm_aluno.php" target="_parent">Voltar </a>

<br><a href="result_enviados.php" target="principal">E-mails Enviados </a>

<br><a href="result_nao_enviados.php" target="principal">E-mails Não Enviados </a>

<br><a href="resetar.php" target="principal">Resetar </a>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Josuel desculpa a demora esta um pouco ocupado, e o seguinte cara, como alguns dados você esta resgatando com &_POST como assunto entre outros, ao enviar para o primeiro email sem problemas mas apartir do segundo ele nao encontra mais essa variavel. Deu pra você entender?

 

Ou seja você precisa determinar essas variavel fixa exemplo $assunto = "Feliz Aniversário";.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Josuel desculpa a demora esta um pouco ocupado, e o seguinte cara, como alguns dados você esta resgatando com &_POST como assunto entre outros, ao enviar para o primeiro email sem problemas mas apartir do segundo ele nao encontra mais essa variavel. Deu pra você entender?

 

Ou seja você precisa determinar essas variavel fixa exemplo $assunto = "Feliz Aniversário";.

Desculpa nada você tá me ajudando muito!

 

Teria como manter o valor dessas variaveis vinda como $_POST ? com alguma função ou comando do php.

 

Ou a sulução mas viavel é trazer essas informações do banco?

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como post achu nao mas com o GET sim.

 

 

 

Porem o mysql seria uma boa opção, mas ai te pergunto. Se você ira deixar esses valores fixo no banco de dados entao porque nao deixar ele fixo no enviar.php?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como post achu nao mas com o GET sim.

 

 

 

Porem o mysql seria uma boa opção, mas ai te pergunto. Se você ira deixar esses valores fixo no banco de dados entao porque nao deixar ele fixo no enviar.php?

Bom dia!

 

Vou pegar essas variaves vinda do formulario como post mesmo, só que usando sesão, do tipo:

 

$_SESSION['assunto'] = $_POST["txtassunto"];

 

Acho que vai da certo, vou terminar as mudanças e posto o resultado. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

fala pessoal, eu to com uma duvida, e o servidor smtp e talz, onde q configura? ou não precisa?? pq tipo pra eu mandar emais pelo outlook ele me limita a 500 destinatarios por vez, com ele daria a msm coisa?? alguem sabe uma possivel solução??

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.