Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá programadores... Gostaria que alguém me ajudasse com uma lógica. Eu sou iniciante em PHP e estou tentando criar um script que quando uma pessoa se cadastra no meu banco ela recebe uma sequencia de 5 e-mails, exatos um por dia. Já aprendi a usar o Cron do linux para executar o script para mim. Mas estou quebrando a cabeça porém não consigo sair do lugar para criar essa lógica para minha necessidade. Não estou pedindo código pronto pessoal, apenas uma ideia de como posso fazer. Com o código eu me viro. Eu não sei se tenho que cria um Crontab para cada e-mail?! ou fazer verificações nas datas no php?!
Desde já agradeço a todos... :)
>
Existem várias alternativas para se resolver o problema, vou colocar a mais simples e a que no meu entender criaria menos problemas para manutenção:
1 - Mais simples:
Você grava o dia de disparo do e-mail na tabela, como são 5 dias, serão 5 colunas
Você agenda 5 crons, 1 para cada dia;
Após o disparo você "limpa" a coluna, evitando assim que você envie o e-mail novamente.
O problema disto é que caso você precise fazer manutenção serão vários arquivos fazendo a mesma coisa, mas como você é iniciante, faz parte.
2 - Mais interessante:
Você grava o dia do disparo do primeiro e-mail em uma coluna e em outra o "controle", no controle você irá saber quantos e-mails já foram enviados;
Você agenda apenas 1 tarefa no cron
Após o disparo do e-mail você verifica no "controle" se já alcançou o quinto e-mail, se alcançou apenas limpa a coluna da tabela e pronto, caso não tenha alcançado você altera a data para o próximo dia e incrementa a coluna de controle dos envios.
Vantagem deste último, maior facilidade para se realizar manutenção.
Valeu ESerra. Show de bola. Esse forum aqui é sensacional. É o único da internet que realmente ajuda os novatos como eu. Se eu puder fazer algo para contribuir com o forum é só me falar...
Existem várias alternativas para se resolver o problema, vou colocar a mais simples e a que no meu entender criaria menos problemas para manutenção:
1 - Mais simples:
Você grava o dia de disparo do e-mail na tabela, como são 5 dias, serão 5 colunas
Você agenda 5 crons, 1 para cada dia;
Após o disparo você "limpa" a coluna, evitando assim que você envie o e-mail novamente.
O problema disto é que caso você precise fazer manutenção serão vários arquivos fazendo a mesma coisa, mas como você é iniciante, faz parte.
2 - Mais interessante:
Você grava o dia do disparo do primeiro e-mail em uma coluna e em outra o "controle", no controle você irá saber quantos e-mails já foram enviados;
Você agenda apenas 1 tarefa no cron
Após o disparo do e-mail você verifica no "controle" se já alcançou o quinto e-mail, se alcançou apenas limpa a coluna da tabela e pronto, caso não tenha alcançado você altera a data para o próximo dia e incrementa a coluna de controle dos envios.
Vantagem deste último, maior facilidade para se realizar manutenção.