Ir para conteúdo

POWERED BY:

Arquivado

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

arldin

Enviar email para os usuarios do site

Recommended Posts

Boa noite a todos eu estou usando um script para enviar email para os usuarios do site

ele envia os email corretamente, mais eu queria que ele só envia-se para os usuarios que estão com

o pagamento em atraso

este e o script

<?php
  $minha_conexion=mysql_connect('localhost','xxxxxx','xxxxx')
 or die('Não se pode conectar com o banco de dados!');

   mysql_select_db('meu banco de dados');

   $query_Tabela = "SELECT user_email FROM se_users";
   $data=date("d-m-Y");
   $data > $data_pg;
   $Tabela = mysql_query($query_Tabela)
 or die(mysql_error());
  $osemails="";
  while ($row_Tabela=mysql_fetch_assoc($Tabela)) {
   $osemails.=($row_Tabela['user_email'].", ");
   }

  $largo=strlen($osemails);
   if ($largo>2)
{
   $osemails=substr($osemails,0,$largo-2);
}
else
{
   echo "Não há destinatários!";
   die();
};

$assunto='Regularize seu pagamento';
$mensagem='<html>
<head>
   <title>Titulo da Pagina</title>
</head>
<body>
   <p>Regularize seu pagamento</p>
   Acesse o abaixo link para regularizar seu pagamento:
   <table>
  <tr>
   <td>http://meu site/pagamento.php</td>
  </tr>
  </table>
</body>
</html>';

$envia='admin';
$remete='admin@xxxxxx.com.br';

mail(null, $assunto, $mensagem, "MIME-Versao: 1.0
Content-type: text/html; charset=iso-8859-1
From: $envia <$remete>
Bcc: $osemails" . "\r\n") or die("Erro ao Enviar o Email");
echo "Mensagem Enviado com Sucesso!"; //

   mysql_free_result($Tabela);
   
?>

Como posso resolver isto

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa mudar o seu select:

 

 

$query_Tabela = "SELECT user_email FROM se_users";

 

Você precisa adicionar uma cláusula WHERE, filtrando os usuários com pagamento pendente. Poderá usar as funções de data/hora do mysql para efetuar os cálculos ou a class DateTime do PHP, por exemplo.

 

 

 

PS: funções mysql_* estão obsoletas desde o PHP 5.5. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tinha feito isto mais ele retorna dizendo que não existe destinatario


sendo quu existe usuario em atraso

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente pelo id assim

$query_Tabela = "SELECT user_email FROM se_users WHERE id = '$id'";

depois pela data_pg

assim

$query_Tabela = "SELECT user_email FROM se_users WHERE data_pg = '$data_pg'";

e ambos retornaram dizem que não existe destinatario

Compartilhar este post


Link para o post
Compartilhar em outros sites

o filtro pelo ID não tem lógica. Você teria que buscar os IDs dos usuários inadimplentes para, depois, fazer outro select com os demais dados.

 

Qual é o valor de $data_pg? Note que você usou o operador igual. Se você quer procurar por usuários cuja data de expiração é inferior que a data atual, deve usar o operador menor que.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim os operadores são iguais

Você não entendeu. Veja de novo o que escrevi:

 

Note que você usou o operador igual. Se você quer procurar por usuários cuja data de expiração é inferior que a data atual, deve usar o operador menor que.

Na sua SQL tem data_pg = '$data_pg'". Esse operador igual não faz sentido. Você tem que buscar por data de expiração menor que a data corrente. Por exemplo

 

 

SELECT campos FROM tabela WHERE data_expiracao < NOW();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Descupe-me pela minha falta de atenção segui a sua sugestão

coloquei assim

 

$query_Tabela = "SELECT user_email FROM se_users WHERE data_pg < NOW();";

 

e resolveu agora só envia para quem esta em atraso

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.