Ir para conteúdo

POWERED BY:

Arquivado

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

::MARCOS

Newsletter

Recommended Posts

é o seguinte desenvolvi um newsletter e to com um problema, ele tem os contados que sao chamados de um DB e esse contatos tambem sao clasificado por grupos, ate ai tdo bem,/

o fato é que quando eu envio o email para um grupos e se esse grupo tem 10 contatos, esses contatos recebem 10 vezes o mesmo email, ou seja esta enviando os email repedito,

#############################

o cod que busca no banco de dados

function enviar_news($id_msg,$id_contatos,$id_grupos){	abre_banco();	$sql_msg="select * from msg_news where id='$id_msg'";	$exec_msg = mysql_query($sql_msg) or die (mysql_error());	$msg=mysql_fetch_array($exec_msg);		$cont_contatos=count($id_contatos);	if ($cont_contatos>0) {  $implode_contatos=implode("') or (id='",$id_contatos);	};	$cont_grupos=count($id_grupos);	if ($cont_grupos>0) {  $implode_grupos=implode("') or (id_grupos='",$id_grupos);	};		if ($cont_contatos<1 && $cont_grupos<1) {  $sql_contatos = "select * from contatos where id='-1'";		} else {  if ($cont_contatos<1) { 	 $sql_contatos = "select * from contatos where (id_grupos='$implode_grupos')";  } else if ($cont_grupos<1) { 	 $sql_contatos = "select * from contatos where (id='$implode_contatos')";  } else { 	 $sql_contatos = "select * from contatos where (id='$implode_contatos') or (id_grupos='$implode_grupos')";  };	}; #############################////o cod que envia o email $exec_contatos=mysql_query($sql_contatos);	$cont_result_contatos=mysql_num_rows($exec_contatos);	for($a=0; $a<$cont_result_contatos; $a++) { 	 $result = mysql_fetch_array($exec_contatos); 	  	 $headers .= "To: $nome_contatos <$email_contatos>\r\n"; 	 $email_contatos=$result[email]; 	 $nome_contatos=$result[nome]; 	 $msg_end = $html_1; 	 mail ($email_contatos,  $msg[nome], $msg_end, $headers);	};	$GLOBALS[num_email]=$cont_result_contatos;
:o

 

meu icq para quem puder ajudar é

145152240

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou alguem tem alguma alternativa para issopode ser outro tipo de envio de emial

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP [/tr][tr]function enviar_news($id_msg,$id_contatos,$id_grupos){

abre_banco();

$sql_msg="select * from msg_news where id='$id_msg'";

$exec_msg = mysql_query($sql_msg) or die (mysql_error());

$msg=mysql_fetch_array($exec_msg);

 

$cont_contatos=count($id_contatos);

if ($cont_contatos>0) {

$implode_contatos=implode("') or (id='",$id_contatos);

};

$cont_grupos=count($id_grupos);

if ($cont_grupos>0) {

$implode_grupos=implode("') or (id_grupos='",$id_grupos);

};

 

if ($cont_contatos<1 && $cont_grupos<1) {

$sql_contatos = "select DISTINCT from contatos where id='-1'";

} else {

if ($cont_contatos<1) {

$sql_contatos = "select DISTINCT from contatos where (id_grupos='$implode_grupos')";

} else if ($cont_grupos<1) {

$sql_contatos = "select DISTINCT from contatos where (id='$implode_contatos')";

} else {

$sql_contatos = "select DISTINCT from contatos where (id='$implode_contatos') or (id_grupos='$implode_grupos')";

};

};

 

#############################

////o cod que envia o email

$exec_contatos=mysql_query($sql_contatos);

$cont_result_contatos=mysql_num_rows($exec_contatos);

for($a=0; $a<$cont_result_contatos; $a++) {

$result = mysql_fetch_array($exec_contatos);

 

$headers .= "To: $nome_contatos <$email_contatos>\r\n";

$email_contatos=$result[email];

$nome_contatos=$result[nome];

$msg_end = $html_1;

mail ($email_contatos, $msg[nome], $msg_end, $headers);

};

$GLOBALS[num_email]=$cont_result_contatos;

[/tr]

 

E bota uma linha no código que limpe as variáveis de endereços

Se voce nao fizer isso vai continuar o mesmo erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde devo colocar a linha?e como devo colar?Urgente é para hj e nao sei como fazer?vai enviar varios email para as pessoas

Compartilhar este post


Link para o post
Compartilhar em outros sites

poedria fazr um loop ali

voce nao achas

 

PHP [/tr][tr]

do {

$exec_contatos=mysql_query($sql_contatos);

$cont_result_contatos=mysql_num_rows($exec_contatos);

for($a=0; $a<$cont_result_contatos; $a++) {

$result = mysql_fetch_array($exec_contatos);

 

$headers .= "To: $nome_contatos <$email_contatos>\r\n";

$email_contatos=$result[email];

$nome_contatos=$result[nome];

$msg_end = $html_1;

mail ($email_contatos, $msg[nome], $msg_end, $headers);

};

$GLOBALS[num_email]=$cont_result_contatos;

while ($cont_result_contatos=mysql_num_rows($exec_contatos));

[/tr]

Que tal isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

nossa dois problemas Primeiro dei um loop infinito a Locaweb ligo para mim heheheheh ^_^ segundo o loop nao funcionou claro!!!Em resumo nao sei como solucionar esse problema ja pensei varias formas e nada alguem poderia me ajudar ???Marcos :mellow:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja era solucionou sozinho hehehehnda muita leitura e estudo para descobrir que sou um idiota hehehehhevaleu por quem pensou em ajudar ja ajudou muito

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.