<?
require_once("include/phpmailer/class.phpmailer.php");

class mailer extends phpmailer{

	var $myhost;
	var $mylink;

	function mailer(){
		require_once("config/config.mail.inc.php");
		
		
		////$mail = new PHPMailer();
		//$mail->PluginDir = "/path/to/phpmailer/dir";
		$this->IsSMTP();                                   // send via SMTP
		///////////var $Mailer   = "smtp";
		$this->Host = $mailHost; // SMTP servers
		
		if ($mailAuth) {
			$this->SMTPAuth = true; 
			$this->Username = $mailUsername;  // SMTP username
			$this->Password = $mailPassword; 
		}
		$this->Priority=3;
		$this->Encoding="quoted-printable";
		$this->IsHTML(true);                               // send as HTML
		//$mail->AltBody  =  $textbody;
		$this->From     = $mailFrom;
		$this->FromName = $MailFromName;
		//print_rr($_REQUEST['mailCat']);
		$this->myhost=$myhost;
		$this->mylink=$mylink;
		
	}


	function sendBcc($id){
		$numeroMails=20;
		
		$db=new dbElemento();
		$row=$db->getLinha("newsletter", $id);
		$assunto=$row['assunto'];
		$data=dataExtenso($row['data']);
		$titulo1=$row['titulo1'];
		$texto1=$row['texto1'];
		$titulo2=$row['titulo2'];
		$texto2=$row['texto2'];
		$myhost=$this->myhost;
		$mylink=$this->mylink;
		
		
		$texto1=$this->parseLinks($texto1);
		$texto1=$this->parseImages($texto1);
		$texto2=$this->parseLinks($texto2);
		$texto2=$this->parseImages($texto2);
		
		
		require_once("config/mailhtml.php");
		
		$this->Body = $html . $html2;
		$this->Subject  = $assunto;
		

		
		foreach($_REQUEST['mailCat'] as $idCat){
			$sql ="SELECT * from contacto where idCat=$idCat and activo=1";
			$dados=$db->get($sql);
			$rows=sizeof($dados);
			$nCiclos=ceil($rows/$numeroMails);
		
			if ($rows) print "Enviando $rows mails na categoria $idCat<br>";
		
			$erro_mail="";
			$m=0;
		// ciclo para escolhidos
			//for ($m=0;$m<$rows;$m++){
			for ($i=0;$i<$nCiclos;$i++){
				
				$max=($rows<($numeroMails*($i+1)))?$rows:($numeroMails*($i+1));
				print "Enviando de ".($m+1)." a $max<br>";
				for ($j=0;$j< $numeroMails; $j++){
					
					if ($dados[$m]['email']=="") continue;
					$email= $dados[$m]['email'];
					$nome= $dados[$m]['nome'];
					//$mail->AddAddress($email, $nome);
					$this->AddBcc($email, "");
					
					
					//print "$m -".$email."-" .$nome."- $erro_mail<br>";
					
					$m++;
		
				}
				if(!$this->Send()) echo $erro_mail="Ocorreu um erro com o mail <br><br>";
				$this->ClearAllRecipients();
				//$mail->ClearAddresses();
				////$mail->ClearAttachments();
			}
		}
		if (empty($erro_mail)) {
			$db->set("update newsletter set enviada=1 where id=$id");
			print "Concluído"; 
		}
	}
	////////////////////////////
	function sendTo($id){
		////	
		$db=new dbElemento();
		
		$row=$db->getLinha("newsletter", $id);
		$assunto=$row['assunto'];
		$data=$row['data'];
		$titulo1=$row['titulo1'];
		$texto1=$row['texto1'];
		$titulo2=$row['titulo2'];
		$texto2=$row['texto2'];
		$myhost=$this->myhost;
		$mylink=$this->mylink;
		
		
		$texto1=$this->parseLinks($texto1);
		$texto1=$this->parseImages($texto1);
		$texto2=$this->parseLinks($texto2);
		$texto2=$this->parseImages($texto2);
		
		
		require_once("config/mailhtml.php");
				
		$this->Subject  = $assunto;
		
		foreach($_REQUEST['mailCat'] as $idCat){
			
			$sql ="SELECT * from contacto where idCat=$idCat and activo=1";
			$dados=$db->get($sql);
			$rows=sizeof($dados);
			$nCiclos=ceil($rows/$numeroMails);
		
			//print "rows $rows nciclos $nCiclos";
			if ($rows) print "Enviando $rows mails na categoria $idCat<br>";
			
			$erro_mail="";
			$m=0;
		// ciclo para escolhidos
			for ($m=0;$m<$rows;$m++){
			//for ($i=0;$i<$nCiclos;$i++){
				//for ($j=0;$j< $numeroMails; $j++){
					
					if ($dados[$m]['email']=="") continue;
					$email= $dados[$m]['email'];
					$nome= $dados[$m]['nome'];
					$mylink=$myserver."remove.php?email=$email";
					$this->Body    = $html . $html2;
	
					$this->AddAddress($email, $nome);
					//$this->AddBcc($email, "");
					
					
					//print "$m -".$email."-" .$nome."- $erro_mail<br>";
					
					//$m++;
					if(!$this->Send()) echo $erro_mail="Ocorreu um erro com o mail <br><br>";
					//$mail->ClearAllRecipients();
					$this->ClearAddresses();
					////$mail->ClearAttachments();
				//}
	
			}
		}
		if (empty($erro_mail)) {
			$db->set("update newsletter set enviada=1 where id=$id");
			print "Concluído"; 
		}
	}
	
	function parseLinks($html){
		return str_replace('<a href="/netimages/', '<a href="'. $this->myhost .'/netimages/', $html);
	}
	
	function parseImages($html){
		return str_replace('src="/netimages/', 'src="'. $this->myhost .'/netimages/', $html);
	}
}
?>
