Jump to content
Sign in to follow this  
ghlevin

Envio automático de e-mail de aniversariantes

Recommended Posts

Tenho uma função no meu site que manda uma relação de cadastrados que fazem aniversário no mês seguinte todo dia 25.

 

A função no arquivo Model:

public function emailAniversariantes(){
		$data = getdate();
		$mes = $data[mon];
		$ano = $data[year];
		if($mes==12){
			$mes = 1;
			$ano = $ano+1;
		}else{
			$mes = $mes+1;
			if($mes<10){
				$mes = '0'.$mes;
			}
		}

		$sqlUnidades = "select id, nome from unidade where ind_unidade_ativa=1 order by nome";
		$resUnidades = System::element('db')->query($sqlUnidades);
		
		$corpo = "";
		$corpo .= "<div style='float:left;width:100%; height:3px; background-color:gray; margin-bottom:20px;'></div>";

		$corpo .="<div style='font-family:Lucida Sans; font-size:13px;' color='black'>
					<br>Bom dia.<br>Segue abaixo a relação dos aniversariantes do próximo mês.<br>
					Se possível, sugerimos que entrem em contato com eles para desejar feliz aniversário!<br><br><br>
					</div>";
			
		foreach ($resUnidades as $rUnidades){
			$sql = "Select u.id as id_usuario, i.id as id_investidor, uu.id_unidade, un.nome nome_unidade, u.email, 
					DATE_FORMAT(i.data_nasc, '%d/%m/%Y') as data_nasc, i.razao_social as nome, i.telefone, i.nome_responsavel,
					(Select count(*) from usuario u join usuario_unidade uu on (uu.id_usuario = u.id) join investidor i on (i.id_usuario = u.id)
					where uu.id_unidade = ".$rUnidades['id']." and month(i.data_nasc)=".$mes.") AS count
					from usuario u join usuario_unidade uu on (uu.id_usuario = u.id) 
					join unidade un on (un.id = uu.id_unidade)
					join investidor i on (i.id_usuario = u.id)
					where uu.id_unidade = ".$rUnidades['id']." and month(i.data_nasc)=".$mes."
					ORDER BY i.razao_social";
			$res = System::element('db')->query($sql);
			
			if($res[0]['count']>=1){
				$corpo .="<div style='width:100%; height:100%; float: left; margin: 25px 0;'>";
				
				$corpo .="<b>Unidade: ".$rUnidades['nome']."</b>";
				
				$corpo .="<table style='width: 100%; border-collapse: collapse; display: table;	background-color: #FFFFFF; border: 3px solid #E2E1E0; padding: 5px;'>
							<thead>
								<tr stile='border-collapse: collapse; border: 3px solid #E2E1E0; padding: 5px;'>
									<th style='border-collapse: collapse; background-color: #F7F7F7; border: 3px solid #E2E1E0; padding: 5px; text-align: center;'>Nome</th>
									<th style='border-collapse: collapse; background-color: #F7F7F7; border: 3px solid #E2E1E0; padding: 5px; text-align: center;'>Telefone</th>
									<th style='border-collapse: collapse; background-color: #F7F7F7; border: 3px solid #E2E1E0; padding: 5px; text-align: center;'>E-mail</th>
									<th style='border-collapse: collapse; background-color: #F7F7F7; border: 3px solid #E2E1E0; padding: 5px; text-align: center;'>Responsável</th>
									<th style='border-collapse: collapse; background-color: #F7F7F7; border: 3px solid #E2E1E0; padding: 5px; text-align: center;'>Data de Nascimento</th>
								</tr>
							</thead>";
				$corpo .="<tbody>";
				
				foreach ($res as $r){
					
					$corpo .= "<tr stile='border-collapse: collapse; border: 3px solid #E2E1E0; padding: 5px;'>";
						$corpo .= "<td style='border-collapse: collapse; background-color: #FFFFFF; border: 3px solid #E2E1E0; padding: 5px; text-align: center;'>".$r['nome']."</td>";
						$corpo .= "<td style='border-collapse: collapse; background-color: #FFFFFF; border: 3px solid #E2E1E0; padding: 5px; text-align: center;'>".$r['telefone']."</td>";
						$corpo .= "<td style='border-collapse: collapse; background-color: #FFFFFF; border: 3px solid #E2E1E0; padding: 5px; text-align: center;'>".$r['email']."</td>";
						$corpo .= "<td style='border-collapse: collapse; background-color: #FFFFFF; border: 3px solid #E2E1E0; padding: 5px; text-align: center;'>".$r['nome_responsavel']."</td>";
						$corpo .= "<td style='border-collapse: collapse; background-color: #FFFFFF; border: 3px solid #E2E1E0; padding: 5px; text-align: center;'>".$r['data_nasc']."</td>";
					$corpo .= "</tr>";
				}
				$corpo .="</tbody>";
				$corpo .="</table></div>";
			}
		}
			
		$corpo .= "<div style='width:100%; height:56px; float:left;'>";
		$corpo .= "<table><font face='Lucida Sans'>";
		$corpo .= "<tr>";
		$corpo .= "<td style='float:left;'><div style='font-size:10px; float:left; width:200px; margin-top:5px; position:relative; margin-right:15px; float:left;'>Tel: +55 11 3577-7173<br>";
		$corpo .= "email@meusite.com.br<br>";
		$corpo .= "http://www.meusite.com.br/</td>";
		
		$corpo .= "<td><img style='float:left; position:relative'></td>";
		
		$corpo .= "</table></font></div></div>";
		$corpo .= "</div>";
			
		$arrayEmails = array();
		$arrayEmails[0]="email2@meusite.com.br";
		$arrayEmails[1]="email3@meusite.com.br";
		$arrayEmails[2]="email4@meusite.com.br";
		Util::enviaEmail("Remetente", $arrayEmails, "Aniversariantes ".$mes."/".$ano, $corpo,implode(";",$arrayEmails));
		return "1";
	} 

Como ela é chamada no arquivo Controller:

public function emailAniversariantes() {
	   	$retorno = CadAdmin::emailAniversariantes();
    	echo $retorno;
    } 

Porém, eu assumi um site de outro desenvolvedor. O próprio desenvolvidor utilizava de aplicativo próprio pra chamar essa função todo dia 25.

 

Como não pude ter acesso ao aplicativo dele e não está sendo enviado o e-mail de aniversariantes, gostaria de saber se eu poderia criar alguma task ou arquivo BAT que possa fazer o envio desse e-mail todo dia 25.

Share this post


Link to post
Share on other sites

Tipo.. vc pode fazer um agendamento de tarefas no seu servidor.. geralmente no seu plano de hospedagem tem a parada de fazer isso, dai vc cria a página e manda ele rodar aquela página sempre no dia 25

 

Um exemplo da Locaweb http://wiki.locaweb.com.br/pt-br/Agendamento_de_tarefas_Revenda_-_Painel_Plesk_11

Share this post


Link to post
Share on other sites

Tipo.. você pode fazer um agendamento de tarefas no seu servidor.. geralmente no seu plano de hospedagem tem a parada de fazer isso, dai você cria a página e manda ele rodar aquela página sempre no dia 25

 

Um exemplo da Locaweb http://wiki.locaweb.com.br/pt-br/Agendamento_de_tarefas_Revenda_-_Painel_Plesk_11

 

Tenho esse site dentro de um servidor Windows.

 

Imaginei fazer um arquivo BAT com alguns comandos de php como os desse site:

http://php.net/manual/pt_BR/install.windows.commandline.php

 

E depois colocar pra executar numa Task.

 

Será que existe algum comando desses do PHP pro Windows Prompt que chamasse a função emailAniversariantes?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By Nipo
      Estou com dúvida se tem como fazer um código em php para fazer upload de uma imagem de um diretório fixo(em vez de abrir uma janela para fazer upload) para um diretório para o servidor.
       
    • By lulabel
      Necessito criar um quiz usando matriz, session e placar mas não consigo de jeito nenhum, já tentei procurar videos ou algum lugar explicando como posso fazer isso, mas até agora nada, fico travado. Sou iniciante no php ainda então qualquer ajuda é uma luz bem vinda.
    • By Dark_Trap000
      Ola, eu tenho um problema ao salvar ips permitidos no MySQL
      segue o codigo de salvamento
      <?php session_start(); include "conexao.php"; if (empty($_SESSION['usuario'])) { header('Location: login.php'); exit(); } $ip = $_SESSION['ip']; echo $pegar_ip = $_SERVER["REMOTE_ADDR"]; if($ip == $pegar_ip) { echo "IP Autorizado!!!"; } else if($ip == 0) { $pegar_ip = $_SERVER["REMOTE_ADDR"]; echo "IP Não Registrado!!!"; $sql = "UPDATE usuario SET creditos = $salvar WHERE usuario_id = $id"; die(); } ?> ele chega á estar tudo certo, + o problema e salvar no mysql. qual o problema ?
    • By violin101
      Caros amigos, membros do grupo, saudações...
       
      Se postei minha dúvida na opção errada peço desculpa.
       
      Estou com uma pequena dúvida.
       
      Quando cadastro usuários na MySql utilizo PASSWORD_HASH para criptografar a Senha.
       
      Estou montando uma rotina, onde o usuário que esqueceu sua senha o sistema envia por e-mail a sua senha, mas me deparei com um pequeno problema.
       
      a senha criada pelo usuário, como por exemplo: 12345678 usando o PASSWORD_HASH fica desta forma: $2y$10$ukBckA5D2aSApHwv/GOKi.P/drP.jwAHOK/9SmWIgRxLUE.x9z.ZK
       
      Quando tento enviar a senha para o usuário vai conforme acima, preciso enviar apenas 12345678. Como consigo descriptografar o PASSWORD_HASH ?
       
      Grato,
       
      Cesar
    • By elisandrodceza
      Alguma ideia para pesquisar os $id recebidos por get em um arquivo diferente ? como se percebe no código funcional a baixo, os $id estão duplicados para funções diferente. Quero adicionar eles em outro arquivo para uma melhor organização com as variáveis $id e $client,  mas de uma maneira que possa pesquisar tanto qual é a $id e o $client para ser informado por email quando o client ler o qrcode, quanto se a $id está na lista para ser redirecionado.
       
       
      ARQUIVO auth_code.php
       
      <?php
          $id = $_GET['id'];
          $ip = $_SERVER['REMOTE_ADDR'];
          $browser = $_SERVER['HTTP_USER_AGENT'];
          $to = "suporte@eatech.inf.br";
          $success = false;

              if ($id == '2623F52846F8A03DA4ADFA9392486807') $client = "Card Contato";
              if ($id == '2BDBDDA17456A1060E156BE7A487FC') $client = "Client 1";
              if ($id == 'E7EA229948A4997C2F72219D6A2764') $client = "Client 2";
              if ($id == '07118879907903166B2C3BE7408EFD') $client = "Client 3";
              if ($id == 'FED09C7CC40ACD77A0BDEA57E894A3') $client = "Client 4";
              if ($id == 'C042D3187B52E87D6E6196567101EF') $client = "Client 5";
              if ($id == '7DCD0215BEC8AF587AD886E407A485') $client = "Client 6";
       
          $messagem = "Cliente: $client<br><br>ID: $id<br><br>IP: $ip<br><br>Browser: $browser"; 
          $assunto = "qrCode digitalizado";
          $headers = "MIME-Version: 1.0\n";
          $headers .= "Content-type: text/html; charset=iso-8859-1\n";
          $headers .= "From: $client\n";
          
          $success = mail($to, $assunto, $messagem, $headers);
          
          if ($id == '2623F52846F8A03DA4ADFA9392486807')
              { header('Location: download/contato.vcf');}
       
          else
              if (

              $id == '2BDBDDA17456A1060E156BE7A487FC' # Client 1
              or $id == 'E7EA229948A4997C2F72219D6A2764' # Client 2
              or $id == '07118879907903166B2C3BE7408EFD' # Client 3
              or $id == 'FED09C7CC40ACD77A0BDEA57E894A3' # Client 4
              or $id == 'C042D3187B52E87D6E6196567101EF' # Client 5
              or $id == '7DCD0215BEC8AF587AD886E407A485' # Client 6
              )
              { header('Location: download/index.php?id=' . $id. '.pdf');}
       
          else
              { echo "<script>alert('Este qrCode ainda não está cadastrado no sistema, tente novamente mais tarde!');history.go(-1) </script>";}
      ?>
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.