Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Envio de emails para membros

30-05-2011 13:01

Olá Pessoal,
Fiz um site para igreja com vários recursos, mas agora estou precisando fazer uma opção para envio de emails para todos os membros. Para não correr o risco de ir para SPAM gostaria que o envio dos emails fossem de 10 em 10 com intervalo de tempo entre eles de 15 segundos. Tive essa idéia a partir de um sistema que tenho chamado WHMCS.

A tabela se chama CADASTRO e o campo EMAIL.

Agradeço a todos que ajudarem.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Envio de emails para membros

30-05-2011 13:04

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Envio de emails para membros

30-05-2011 13:26

Obrigado.
Estou testando mas esta dando erro aqui:
<?php /* resumo do armazenado no bd */ print <<< HERE <center> Existe $total emails nesse bd. <br> Estamos mostrando $maximo por página. </center> HERE; ?>

Parse error: syntax error, unexpected T_SL in /envioDeEmails.php on line 179
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Envio de emails para membros

30-05-2011 15:32

Troca esse trecho para um echo comum.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Envio de emails para membros

30-05-2011 15:36

Como assim? Por favor, altere para eu ver onde se refere.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Envio de emails para membros

30-05-2011 15:39

Assim

echo "<center>
Existe $total emails nesse bd.
<br>
Estamos mostrando $maximo por página.
</center>";
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Envio de emails para membros

30-05-2011 15:57

Esse print <<< HERE não tem?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Envio de emails para membros

30-05-2011 16:08

Acho que alguns servidores não aceitam. Por isso é melhor substituir por echos.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Envio de emails para membros

31-05-2011 11:27

Amigo, estou testando seu sistema, mas ele não esta enviando para os demais. Ele da o refresh, mas não mostra que foi enviando.
<?php include('conexao.php'); $dbhost = $database; /* servidor */ $dbuser = $usuario; /* usuário do banco de dados */ $dbpasswd = $dbsenha; /* senha do banco de dados */ $dbname = $dbname; /* nome do banco de dados */ /* abaixo abrimos a conexão com os dados acima */ $conexao = @mysql_connect($dbhost, $dbuser, $dbpasswd) or die ("não foi possível a conexão, verifique os dados."); $db = @mysql_select_db($dbname) or die ("não foi possível o acesso ao banco de dados $dbname."); /* nome da tabela onde está os nosso e-mails */ $tabela="emails"; /* pegamos todos os dados da tabela ordenando em ordem crescente por email */ $sql=mysql_query("SELECT * FROM $tabela ORDER BY email ASC"); $total=mysql_num_rows($sql); /* declaração da página inicial */ if($pagina=="") { $pagina="1"; } /* quantos e-mails enviados por página */ $maximo="20"; /* tempo em segundos para cada envio */ $tempo_segundo="10"; /* calcula o registro inicial */ $inicio=$pagina-1; $inicio=$maximo*$inicio; /* base do script */ $query=mysql_query("SELECT * FROM $tabela ORDER BY email ASC LIMIT $inicio,$maximo"); /* início da mostragem de dados */ while($dados=mysql_fetch_array($query)) { $email = $dados['email']; ?> <?php $assunto_email = $_POST['assunto']; // assunto do e-mail enviado $mensagem_email = $_POST['mensagem']; // mensagem do e-mail $remetenteNome = $_POST['remetenteNome']; $remetenteEmail = $_POST['remetenteEmail']; $headers = "From: $remetenteNome <$remetenteEmail>" . "\r\n"; $headers .= 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; /* Existem alguns servidores de e-mail, que podem não aceitar os headers acima, para isso, você pode usar uma alternativa. //$explode = explode("@", $email); //if($explode[1]=="hotmail.com") { //mail("$email","$assunto_email","$mensagem_email","From: eu < eu@eu.com.br > Content-type: text/txt"); //} a linha acima, faz um envio alternativo, quando a extensão for hotmail.com, basta tirar os // do começo das linhas e colocar esses códigos abaixo. */ echo "<tr>"; echo "<td>$email - "; if(@mail("$email","$assunto_email","$mensagem_email", $headers)) { echo "<font color='green'>enviado com sucesso</font></td>"; } else { echo "<font color='red'>falha no envio</font></td>"; } echo "</tr>"; ?> <?php } ?> </table> <?php /* calcula a página anterior */ $menos=$pagina-1; /* calcula a página posterior */ $mais=$pagina+1; /* calculo da mostragem das páginas */ $p_ini=$mais-1; $p_ini=$maximo*$p_ini; /* início da mostragem das páginas */ $p_query=mysql_query("SELECT * FROM $tabela ORDER BY email ASC LIMIT $p_ini,$maximo"); $p_total=mysql_num_rows($p_query); /* mostragem do página anterior e posterior */ if($menos>0) { echo "<a href=\"?pagina=$menos\">anterior(es)</a> "; } if($p_total>0) { echo "<a href=\"?pagina=$mais\">proxima(s)</a>"; echo "<META HTTP-EQUIV='Refresh' CONTENT='$tempo_segundo; URL=?pagina=$mais'>"; } echo "<br><center>Página atual: $pagina.</center><br>"; if($menos!="0" and $p_total=="0") { echo "<center>FIM</center>"; } ?> <?php /* resumo do armazenado no bd */ echo "<center> Existe $total emails nesse bd. <br> Estamos mostrando $maximo por página. </center>"; ?> <?php // fim da conexão mysql_close($conexao); ?>

0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Envio de emails para membros

31-05-2011 11:29

só fica nisso:
- falha no envio 14f232b432f06ad2@apps.messenger.live.com - enviado com sucesso 1515f50cc5a2f338@apps.messenger.live.com - enviado com sucesso 168ce5af47ea0109@apps.messenger.live.com - enviado com sucesso 1ce9ebc3a22431d5@apps.messenger.live.com - enviado com sucesso 20comercial@webhaus.com.br - enviado com sucesso 20denit@litoralmania.com.br - enviado com sucesso 20info@bwconnector.com - enviado com sucesso 20rogeriocontb@terra.com.br - enviado com sucesso 20Smile@VoipOrangeCountyCA.com - enviado com sucesso 2188fdac3d714624@apps.messenger.live.com - enviado com sucesso 3012444@sip.megavoip.com.br - enviado com sucesso 30afaa6661e1fa83@apps.messenger.live.com - enviado com sucesso 33ddf9bc167d9f79@apps.messenger.live.com - enviado com sucesso 395454493bf8bff8@apps.messenger.live.com - enviado com sucesso 3d98cf0353e633dc@apps.messenger.live.com - enviado com sucesso 4f8663d132ba46df@apps.messenger.live.com - enviado com sucesso 529c9d1a7ea59411@apps.messenger.live.com - enviado com sucesso 55ca9a85499f15e3@apps.messenger.live.com - enviado com sucesso 57810C2CC937AEE0@apps.messenger.live.com - enviado com sucesso

proxima(s)
Página atual: 1.

Existe 2413 emails nesse bd.
Estamos mostrando 20 por página.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Envio de emails para membros

31-05-2011 11:32

A primeira página envia? Qual erro?

Altera essa parte

?pagina=$mais

para

documentotal.php?pagina=$mais
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Envio de emails para membros

31-05-2011 11:44

O primeiro envio ele faz, mas os demais não. fiz como me falou, mas não faz nada.
/* mostragem do página anterior e posterior */ if($menos>0) { echo "<a href=\"formEmailEnviando.php?pagina=$menos\">anterior(es)</a> "; } if($p_total>0) { echo "<a href=\"formEmailEnviando.php?pagina=$mais\">proxima(s)</a>"; echo "<META HTTP-EQUIV='Refresh' CONTENT='$tempo_segundo; URL=formEmailEnviando.php?pagina=$mais'>"; }

0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Envio de emails para membros

31-05-2011 11:51

Pelo que entendi, ele esta ficando em um loop nos 20 primeiros e não sai essa contagem. Estou fazendo um POST para enviar a MENSAGEM e ASSUNTO, mas a partir do segundo LOOP essas informações se perdem e ele envia a mensagem como vazio.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Envio de emails para membros

31-05-2011 11:52

Acho que identifiquei o problema. Troque esse trecho

/* declaração da página inicial */
if($pagina=="") {
$pagina="1";
}

Por esse

/* declaração da página inicial */
$pagina = "";
if(isset($pagina)=="") {
$pagina="0";
} else {
$pagina = $_GET['pagina'];
}

Do modo que estava, não estava pegando os valores para redirecionar para as páginas 2, 3, etc...

MOVIDO: de PHP para MySQL
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Envio de emails para membros

31-05-2011 11:56

E sobre isso?
A partir do segundo loop ou tisparo as informações estão se perdendo.
Antes de enviar tem um form que eu preencho.

$assunto_email = $_POST['assunto']; // assunto do e-mail enviado $mensagem_email = $_POST['mensagem']; // mensagem do e-mail $remetenteNome = $_POST['remetenteNome']; $remetenteEmail = $_POST['remetenteEmail']; $headers = "From: $remetenteNome <$remetenteEmail>" . "\r\n"; $headers .= 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Envio de emails para membros

31-05-2011 13:00

Ah, então você deve salvar os dados em COOKIE ou SESSION, para que os valores fiquem disponíveis na página após a atualização.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Envio de emails para membros

31-05-2011 13:11

Poderia me informar como fazer isso?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Envio de emails para membros

31-05-2011 13:40

Por exemplo, se você quer armazenar um nome que veio via post em uma SESSION, inicie o documento com o session_start()

session_start();

Depois, coloque essa linha

isset($_POST['nome'])!='' ? $_SESSION['nome'] = $_POST['nome'] : '';

Essa linha, quer dizer que se for enviado um valor para nome via post, será criado a SESSION nome com o valor enviado.

A partir daí, nos lugares onde você precisar mostrar o nome, você vai usar o:
echo $_SESSION['nome'];

Essa SESSION irá ficar salvar, e poderá ser usada em toda paginação, e será trocado o valor dela se você enviar novamente o valor via post.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Envio de emails para membros

31-05-2011 14:37

Estou fazendo assim, pode me confirmar se esta correto:
<?php session_start(); isset($_POST['assunto'])!='' ? $_SESSION['assunto'] = $_POST['assunto'] : ''; isset($_POST['mensagem'])!='' ? $_SESSION['mensagem'] = $_POST['mensagem'] : ''; isset($_POST['remetenteNome'])!='' ? $_SESSION['remetenteNome'] = $_POST['remetenteNome'] : ''; isset($_POST['remetenteEmail'])!='' ? $_SESSION['remetenteEmail'] = $_POST['remetenteEmail'] : ''; $assunto_email = $_POST['assunto']; // assunto do e-mail enviado $mensagem_email = $_POST['mensagem']; // mensagem do e-mail $remetenteNome = $_POST['remetenteNome']; $remetenteEmail = $_POST['remetenteEmail']; $headers = "From: $remetenteNome <$remetenteEmail>" . "\r\n"; $headers .= 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Envio de emails para membros

31-05-2011 15:05

Faltou um detalhe. Os valores que você vai usar, serão da SESSION

$assunto_email = $_SESSION['assunto']; // assunto do e-mail enviado
etc...
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Envio de emails para membros

31-05-2011 15:15

Que estranho.
Quando eu faço o envio da o seguinte erro:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /formEmailEnviando.php on line 61
61 -> while($dados=mysql_fetch_array($query)) {
Mas depois dos 10seg ele envia normalmente.
Porque será?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Envio de emails para membros

31-05-2011 15:20

Esse erro é na query, ou seja, algum valor usado na query não está correto. Veja se não alterou alguma variável usada na query.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Envio de emails para membros

31-05-2011 15:32

O que mexi foi na ordem id DESC. Quando ele mostra página 2 em diante fica tudo certinho.
Percebi que esse valor $total mostra o total de emails do BD, tem como criar uma contagem regressiva com esse valor para ir mostrando a quantidade que falta para acabar o envio?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Envio de emails para membros

31-05-2011 16:37

Tenta o seguinte:

$assunto_email = ''; // deixar vazio

if(@$_POST['assunto_email']!='') { // se está chegado no documento pelo formulário
$assunto_email.= @$_POST['assunto_email']; // $assunto_email vem com o valor preenchido
$_SESSION['assunto_email']=@$_POST['assunto_email']; // salva o assunto na sessin
} else {
$assunto_email.= $_SESSION['assunto_email']; // se não mandou os dados pelo formulário, usará os dados da SESSION
}

Para esse calculo dos valores, tente assim.

if(@$_SESSION['total']=="") {
$_SESSION['total'] = 10; // esse 10 será o $total, coloque abaixo da query, logo após pegar o valor
} else {
$_SESSION['total']-=2; // aqui, a cada refresh, irá subtrair 2 desse total
}

echo $_SESSION['total']; // aqui, será o echo que mostrará quantos faltam para terminar
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Envio de emails para membros

31-05-2011 20:42

Descobrir o motivo do erro. Eu tenho que fazer assim no form:
action="envioDeEmailsEnviando.php?pagina=1"

Por causa da nova declaração que vc tinha me mandando. Não tinha nenhum valor na _GET:
/* declaração da página inicial */ $pagina = ""; if(isset($pagina)=="") { $pagina="0"; } else { $pagina = $_GET['pagina']; }

0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado