Jump to content
Fórum Script Brasil
  • 0

enviar varios destinatarios


Marcos Geam

Question

Pessoal alguém poderia me dizer onde esta o erro no codigo abaixo; na realidade não esta errado o envio esta sendo efetuado so que não envia para todos os emails do banco apenas para um, a ideia é de um post vindo do formulario que informa qual categoria devera ser enviado o email ele seleciona os emails no banco e envia apenas para a categoria selecionado $_POST['campo_do_formulario_categoria']; (creio o erro esteja no laço que não estou sabendo fazer)

//seleciona email na tabela

$colname_destinatarios_email = "-1";

if (isset($_POST['grupo_assinante'])) {

$colname_destinatarios_email = $_POST['grupo_assinante'];

}

mysql_select_db($database_conn, $conn);

$query_destinatarios_email = sprintf("SELECT * FROM ntb_emails WHERE grupo_assinante = %s", GetSQLValueString($colname_destinatarios_email, "text"));

$destinatarios_email = mysql_query($query_destinatarios_email, $conn) or die(mysql_error());

$row_destinatarios_email = mysql_fetch_assoc($destinatarios_email);

$totalRows_destinatarios_email = mysql_num_rows($destinatarios_email);

?>

// Cria o Laço Repetitivo

while($totalRows_destinatarios_email = mysql_fetch_assoc($destinatarios_email)){

//Determina a variavel do destinatario

$destinatarios = $totalRows_destinatarios_email['email_assinante'];

}

//Criando a classe PHPMailer para envio de newsletter

$mail = new PHPMailer();

$mail->IsSMTP('smtp'); // mandar via SMTP

$mail->Mailer = ('mail');

.....

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

já coloquei mesmo assim continua enviando apenas para um dos emails;

//Cria o laço repetitivo

while($row_destinatarios_email = mysql_fetch_array($destinatarios_email)){

// ADICIONAMOS OS PADRÕES DE DESTINATRIO

$destinatarios = $row_destinatarios_email['email_assinante'];

include ("phpmailer/class.phpmailer.php");

//Criando a classe PHPMailer para envio de newsletter

.....

}

mais acima esta a conexao com a tabela vou mostrar abaixo:

$colname_destinatarios_email = "-1";

if (isset($_POST['grupo_assinante'])) {

$colname_destinatarios_email = $_POST['grupo_assinante'];

}

mysql_select_db($database_conn, $conn);

$query_destinatarios_email = sprintf("SELECT * FROM ntb_emails WHERE grupo_assinante = %s", GetSQLValueString($colname_destinatarios_email, "text"));

$destinatarios_email = mysql_query($query_destinatarios_email, $conn) or die(mysql_error());

$row_destinatarios_email = mysql_fetch_assoc($destinatarios_email);

$totalRows_destinatarios_email = mysql_num_rows($destinatarios_email);

Link to comment
Share on other sites

  • 0

Vamos lá detalhando;

form (pagina pre-envio.php)

<form action="template-01.php?id=<?php echo $row_lista_conteudo['id']; ?>" method=post">

<!-- new box -->

<div class="box corners shadow">

<div class="box-header">

<h2>Enviar Newsletter</h2>

<div class="box-header-ctrls">

<a href="java script:void(null);" title="" class="close"><!-- --></a>

</div>

</div>

<div class="box-content" id="contacts-1">

<div class="inbox-sf">

<input type="text" name="input" onFocus="if(this.value=='Search the articles')this.value='';" onBlur="if(this.value=='')this.value='Search the articles';" value="Envio individual" class="input-1"/>

<select name="grupo_assinante" class="select-1" id="grupo_assinante">

<option value="Clientes">Clientes</option>

<option value="Amigos">Amigos</option>

<option value="Família">Família</option>

</select>

<input type="submit" name="input" value="Enviar" class="inbox-sf-search-btn" />

pagina envio.php (resumo apenas partes principais)

<?php

require_once('../../Connections/conn.php');

include ("phpmailer/class.phpmailer.php");

......

$colname_destinatarios_email = "-1";

if (isset($_POST['grupo_assinante])) {

$colname_destinatarios_email = $_POST['grupo_assinante'];

}

mysql_select_db($database_conn, $conn);

$query_destinatarios_email = sprintf("SELECT * FROM ntb_emails WHERE grupo_assinante = %s", GetSQLValueString($colname_destinatarios_email, "text"));

$destinatarios_email = mysql_query($query_destinatarios_email, $conn) or die(mysql_error());

$row_destinatarios_email = mysql_fetch_assoc($destinatarios_email);

$totalRows_destinatarios_email = mysql_num_rows($destinatarios_email);

....... criando o laço e o envio smtp

//Cria o laço repetitivo

while($totalRows_destinatarios_email = mysql_fetch_assoc($destinatarios_email)){

// ADICIONAMOS OS PADRÕES DE DESTINATRIO

$destinatarios .= $totalRows_destinatarios_email['email_assinante'].",";}

//Criando a classe PHPMailer para envio de newsletter

$mail = new PHPMailer();

$mail->IsSMTP('smtp'); // mandar via SMTP

$mail->Mailer = ('mail');

$mail->SMTPSecure = 'ssl';

.........

espero ajuda obrigado a todos!

Link to comment
Share on other sites

  • 0

Não sei se entendi direito mais esse script eu uso e esse IF que criei funciona perfeitamente. Como observei que você esta usando a classe PHPMailer que eu tambem uso acho que isso vai te ajudar.

Substitui os parametros e ve se ajuda. Abraço.

<?php

//Enviando email não autenticado e enviando email, selecionando pelo categoria.

require("libs/class.phpmailer.php"); // Certifique-se de que o caminho está certo.

$grupo_assinante= $_POST['grupo_assinante'];//nome do select vindo do formulario, traz o valor selecionado pelo usuario

$mail = new PHPMailer();

$mail->SetLanguage("br", "libs/");

$mail->From = "website@email.com.br"; // E-mail do remetente

$mail->FromName = "Formulario do site"; // Nome do remetente

if($grupo_assinante== 'Amigos')://

$mail->AddAddress("maria@email.com"); //quantos destinatarios forem necessarios é so ir adicionarndo um em baixo do outro, quantos addAdress quiser.

$mail->AddAddress("joao@email.com");

elseif($grupo_assinante== 'Clientes'):

$mail->AddAddress("fulano@email.com.br"); // E-mail do destinatário

elseif($grupo_assinante== 'Familia'):

$mail->AddAddress("marcos@email.com"); // E-mail do destinatário

else:

$para = 'erro';

endif;

// agora verificamos se não há erro na seleção da categoria se sim volta para o formulario

if($para == 'erro'):

?>

&lt;script language=JavaScript">

alert('Selecione um departamento');

location.href='formulario.html';</script>

<?

exit;

endif;

$mail->IsHTML(false);

$mail->Subject = $_POST['assunto];

$mail->Body .= "Nome: ".$_POST['nome_usuario']."\r\n";

$mail->Body .= "E-Mail: ".$_POST['email_usuario']."\r\n";

if(!$mail->Send()) {

echo "Erro: ". utf8_decode($mail->ErrorInfo);

} else {

header('Location: http://www.website.com.br');

}

?>

Edited by kethellen
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...