Um relatório agendado por e-mail: um script, uma tarefa cron e uma conta SMTP

Para receber todas as manhãs um resumo do site no e-mail (pedidos do dia, mensagens recebidas, novos registos), precisa de três peças: um script PHP que vai buscar os números à base de dados, uma conta de e-mail por onde sai a mensagem, e uma tarefa cron que o corre à hora marcada. Tudo isto cabe num plano de hospedagem partilhada.

As três peças

Peça O que faz Cuidado
Script PHP Faz a consulta, escreve o texto e envia. Fica fora de public_html. As credenciais vão num ficheiro à parte.
Conta SMTP É por onde sai o e-mail. Use uma caixa do seu domínio, com os dados de ligação que o cPanel mostra para essa conta.
Tarefa cron Corre o script à hora certa. A hora é a do servidor.

Passo a passo

1 Decida quais são os números. Três ou quatro bastam: quantos pedidos, quantas mensagens, quantos registos novos. Um relatório que ninguém lê até ao fim deixa de ser aberto.
2 Crie um utilizador de base de dados só de leitura. No cPanel, em Bases de Dados MySQL, crie um utilizador e dê-lhe apenas a permissão de consulta (SELECT). Se o relatório for roubado, ninguém consegue alterar nada.
3 Escreva o script. Liga-se à base com esse utilizador, corre as consultas e monta um texto simples com a data no assunto. Para enviar, use o PHPMailer com SMTP: veja enviar e-mail a partir do seu código com o PHPMailer.
4 Corra-o à mão uma vez e confirme que o e-mail chega, e chega à caixa de entrada.
5 Agende-o. Uma vez por dia, a uma hora em que o servidor está calmo, por exemplo de madrugada ou antes de chegar ao trabalho. A linha tem o caminho completo do PHP e do script: veja correr um script PHP a partir de uma tarefa cron.
6 Guarde um registo. Acrescente >> /home/CONTA/relatorio.log 2>&1 à linha, para saber o que aconteceu se um dia o e-mail não chegar.

Desenhe o relatório para ser lido em dez segundos. O número mais importante no assunto do e-mail, o resto em poucas linhas, e sempre pela mesma ordem. Compare com o dia anterior ou com a semana passada: um valor sozinho diz pouco, uma variação diz muito. Se quiser mais detalhe, junte uma ligação e não uma tabela enorme.

Não ponha dados pessoais a mais no e-mail. Um relatório com nomes, telefones e valores completos fica em caixas de correio, cópias e telemóveis. Mande totais e contagens, e uma ligação para o painel onde o detalhe está protegido.

Se o relatório cai na pasta de lixo, o problema é do domínio e não do script: veja SPF, DKIM e DMARC: porque o seu e-mail vai para o lixo. Se a base de dados mudar de utilizador ou de palavra-passe, o script falha em silêncio e o e-mail simplesmente deixa de chegar. É mais um motivo para reparar na falta dele.

Faça o script avisar quando não há nada: «hoje, zero pedidos». Se o e-mail de um dia desaparecer, sabe logo que o problema é a tarefa e não o movimento.

Precisa de um plano com cPanel, cron e caixas de e-mail? Veja os planos de hospedagem.

Ver os planos

VEJA TAMBÉM

Enviar e-mail a partir do seu código com o PHPMailer

Correr um script PHP a partir de uma tarefa cron

Tarefas cron: para que servem e como criar uma

Planos de hospedagem

PRODUTO RECOMENDADO

E-mail profissional no seu domínio

Caixas com o nome da sua empresa, sem publicidade, com filtro de spam. desde 5.940,00 Kz/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?