Pessoal, bom dia!
Estou fazendo uma rotina para enviar e-mails aos clientes e a rotina que tenho testando com um boleto o mesmo envia com todas as informações corretas, porém, quando coloco pra enviar dois emails a rotina dispara os dois e-mails mas o segundo sai com a mesma informação do primeiro, não sendo atualizado com os dados do segundo envio, tirando a rotina de email do laço forech ele executa a SP corretamente duas vezes com os dados distintos, voltando a rotina do phpmailer ele não atualiza o envio do segundo boleto, já tentei limpar todas as variáveis usadas mas não consegui, é que o arquivo é muito grande pra postar ele inteiro aqui.
O script começa assim, seria um resumo dele, com 1 email ele faz certinho, incluiu mais que dois e-mail somente o primeiro funciona os demais são enviados porém sempre com a informação do primeiro, se alguém tiver outra ideia, uma luz, ficaria muito grato.
<?
include ('../../../../phplib/apoio/conecta.php');
include ('../../../../phplib/apoio/bibliotecajr.php');
require "../boletos/class.phpmailer.php";
$mail = new PHPMailer();
$guias = $_POST['guias']; //é o vetor que recebe os dois emails
$mail->Mailer = "smtp"; //Define o método de envio
$mail->IsHTML(true); //Define que a mensagem poderá ter formatação HTML
$mail->CharSet = "utf-8"; //Define que a codificação do conteúdo da mensagem será utf-8
$mail->SMTPSecure = "tls"; //Define que os emails enviadas utilizarão SMTP Seguro tls
$mail->Host = "smtp"; //Define que o Host que enviará a mensagem é o
$mail->Port = "25"; //Define a porta utilizada para o envio autenticado
$mail->SMTPAuth = "true"; //Define que a mensagem utiliza método de envio autenticado
$mail->Username = "email"; //Define o usuário autenticado responsável pelo envio
$mail->Password = "senha"; //Define a senha deste usuário citado acima
$mail->From = "email";
$mail->FromName = "Boleto";
//Define o destinatário que receberá a mensagem
$mail->AddAddress("email do cliente");
//Define o e-mail que vai receber com cópia oculta
//$mail->AddBCC("email");
$mail->AddReplyTo("email", $mail->FromName); //Define o email que receberá resposta desta mensagem, quando o destinatário responder
$mail->Subject = "Boleto"; //Assunto da mensagem
$mail->Body = $msg; //Toda a estrutura HTML e corpo da mensagem
//Envia o e-mail
$enviado = $mail->Send();
$mail->ClearAllRecipients();
$mail->ClearAttachments();
$mail->ClearAddress();
if ($enviado)
{
echo "E-mail enviado com sucesso!";
$sem_erro = $sem_erro + 1 ;
}else
{
echo "Não foi possível enviar o e-mail.";
echo "<b>Informações do erro:</b> " . $mail->ErrorInfo;
$erro = $erro + 1;
}
unset($a);
}
Pergunta
RicardoBresciani
Pessoal, bom dia!
Estou fazendo uma rotina para enviar e-mails aos clientes e a rotina que tenho testando com um boleto o mesmo envia com todas as informações corretas, porém, quando coloco pra enviar dois emails a rotina dispara os dois e-mails mas o segundo sai com a mesma informação do primeiro, não sendo atualizado com os dados do segundo envio, tirando a rotina de email do laço forech ele executa a SP corretamente duas vezes com os dados distintos, voltando a rotina do phpmailer ele não atualiza o envio do segundo boleto, já tentei limpar todas as variáveis usadas mas não consegui, é que o arquivo é muito grande pra postar ele inteiro aqui.
O script começa assim, seria um resumo dele, com 1 email ele faz certinho, incluiu mais que dois e-mail somente o primeiro funciona os demais são enviados porém sempre com a informação do primeiro, se alguém tiver outra ideia, uma luz, ficaria muito grato.
<?
include ('../../../../phplib/apoio/conecta.php');
include ('../../../../phplib/apoio/bibliotecajr.php');
require "../boletos/class.phpmailer.php";
$mail = new PHPMailer();
$guias = $_POST['guias']; //é o vetor que recebe os dois emails
foreach($guias as $guia)
{
$sql1 = "SP @VARIAVEL = '".$guia."'";
$query1 = mssql_query($sql1,$conexao);
$result3 = mssql_fetch_array($query1);
$a = $result3["ID_SCOTITUL"];
$msg .= "<html lang='pt-br'>";
$msg .= "</html>
$mail->Mailer = "smtp"; //Define o método de envio
$mail->IsHTML(true); //Define que a mensagem poderá ter formatação HTML
$mail->CharSet = "utf-8"; //Define que a codificação do conteúdo da mensagem será utf-8
$mail->SMTPSecure = "tls"; //Define que os emails enviadas utilizarão SMTP Seguro tls
$mail->Host = "smtp"; //Define que o Host que enviará a mensagem é o
$mail->Port = "25"; //Define a porta utilizada para o envio autenticado
$mail->SMTPAuth = "true"; //Define que a mensagem utiliza método de envio autenticado
$mail->Username = "email"; //Define o usuário autenticado responsável pelo envio
$mail->Password = "senha"; //Define a senha deste usuário citado acima
$mail->From = "email";
$mail->FromName = "Boleto";
//Define o destinatário que receberá a mensagem
$mail->AddAddress("email do cliente");
//Define o e-mail que vai receber com cópia oculta
//$mail->AddBCC("email");
$mail->AddReplyTo("email", $mail->FromName); //Define o email que receberá resposta desta mensagem, quando o destinatário responder
$mail->Subject = "Boleto"; //Assunto da mensagem
$mail->Body = $msg; //Toda a estrutura HTML e corpo da mensagem
//Envia o e-mail
$enviado = $mail->Send();
$mail->ClearAllRecipients();
$mail->ClearAttachments();
$mail->ClearAddress();
if ($enviado)
{
echo "E-mail enviado com sucesso!";
$sem_erro = $sem_erro + 1 ;
}else
{
echo "Não foi possível enviar o e-mail.";
echo "<b>Informações do erro:</b> " . $mail->ErrorInfo;
$erro = $erro + 1;
}
unset($a);
}
Link para o comentário
Compartilhar em outros sites
12 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.