Skip to content

Instantly share code, notes, and snippets.

@rafaelaugustos
Created June 4, 2016 21:59
Show Gist options
  • Save rafaelaugustos/5fff3c13d2a1138faee817dabb2b32f5 to your computer and use it in GitHub Desktop.
Save rafaelaugustos/5fff3c13d2a1138faee817dabb2b32f5 to your computer and use it in GitHub Desktop.
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
require("../model/config.php");
include('phpmailer/class.phpmailer.php');
include('phpmailer/class.smtp.php');
// Campos para envio da mensagem
$de = utf8_decode('quem esta enviando');
$para = utf8_decode('destinatario');
$assunto = utf8_decode('Assunto');
$html = utf8_decode('Conteudo HTML');
$tabela = "useremail";
// Campos utilizado para consulta
$campos = "email,nome";
// Numero Maximo de envio
$quant = 2;
// Tempo de um processo de envio para o outro
$seg = 15;
// Resgata o valor da global inicio
$inicio = (int)$_POST['inicio'];
// Atribui o resultado da soma entre inicio e quantidade
$fim = (int)$_POST['fim'];
// Assunto do newsletter
$assunto = $_POST['assunto'];
// Mensagem do newsletter
$conteudo = $_POST['conteudo'];
// Executa a consulta ou informa um erro caso ocorra
$sql = $pdo->prepare("SELECT ".$campos." FROM ".$tabela." LIMIT ".$inicio.",".$quant."");
$sql->execute();
// Conta os Registros no banco
$total = $sql->rowCount();
if($inicio >= $total){ //se ja enviou todos para o loop
die(json_encode([
'concluido' => 'sim'
]));
}
$mail = new PHPMailer();
// Envia o email para todos
while($r = $sql->fetchObject()){
// Adiciona os padões de destinatario
$para = $r->email;
// Cliando a classe PHPMAILER para o envio do newsletter
$mail->IsSMTP();
$mail->Host = "mail.iorder.com";
$mail->SMTPAuth = true;
$mail->Username = 'system@iorder.com';
$mail->Password = '@@iorder';
$mail->From = 'system@iorder.com';
$mail->FromName = 'Contato iOrder';
$mail->AddAddress($para,$r->nome);
$mail->IsHTML(true);
$mail->Subject = $assunto;
$texto = 'Texto Alternativo';
$mail->Body = $conteudo;
$mail->AltBody = $texto;
if($mail->Send()){
echo 'Mensagem enviado com sucesso para: '.$para.'<br>';
}else{
echo 'Mensagem não enviada para: '.$para.'<br>';
}
}
//proxima quantidade
$inicio = $inicio+$fim;
//caso não tenha acabado, retorna os novos parametros
die(json_encode([
'concluido' => 'nao',
'inicio' => $inicio,
'fim' => $fim,
'conteudo' => $conteudo,
'total' => $total
]));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment