Tarefas Cron
O WordPress tem suporte integrado para tarefas cron, o que permite que alguns processos sejam executados em segundo plano nos horários programados. Quando você instala o WordPress ele já vem com as seguintes tarefas agendadas:
- Atualizações automáticas do WordPress
- Verificações de versão do WordPress
- Verificações de atualizações de plugins e templates
- Publicação de postagens agendadas
No entanto todo esse sistema é falho, se seu site não receber ao menos 1 visita durante um período de tempo, nenhuma dessas tarefas são executadas. Para resolver esses problemas utilizamos o cron do próprio sistema operacional Linux.
Como o cron é executado como um daemon, ele será executado com base na hora do sistema do servidor e não exigirá mais que um usuário visite o site para que as tarefas agendadas sejam executadas no seu WordPress.
Antes de configurar o cron, desabilite o WordPress de utilizar o cron interno dele. Adicione o conteúdo abaixo no arquivo wp-config do seu WordPress:
define('DISABLE_WP_CRON', true);
Abra o crontab do servidor e configure as tarefas cron que serão executadas pelo sistema:
crontab -e
Não vou entrar em detalhes sobre a sintaxe do crontab , mas adicione ao final do arquivo a cron do WordPress para que seja executada a cada 5 minutos:
*/5 * * * * cd /var/www/html; /usr/local/bin/wp cron event run --due-now >/dev/null 2>&1
Agora salve o arquivo para finalizar. Pressione CTRL + X seguido de Y e Enter. Alguns artigos na internet sugerem o uso de wget
ou curl
para acionar o cron, mas o uso do WP-CLI é recomendado.
Agora você configurou o cron do servidor para que execute as tarefas agendadas do WordPress.
Configurando envios de e-mail com SMTP Relay Mailjet
No nosso servidor de hospedagem wordpress não configuramos nenhum serviço referente a envio de e-mails. Se você precisa redefinir uma senha ou enviar newsletter, só será possível se configurarmos um SMTP Relay para que os emails sejam enviados.
O Mailjet possui um serviço de SMTP Relay muito bom, inclusive o plano gratuito nos possibilita enviar até 6 mil envios mensal, para projetos pequenos isso é mais do que suficiente.
Para configurar o Mailjet no seu WordPress siga os passos abaixo.
1- Cadastro no Mailjet
Acesse o site oficial e clique em Get Started e realize o seu cadastro. Após preencher todas as etapas, acesse seu e-mail para confirmar seu cadastro.
Após confirmar o seu cadastro, você verá uma tela como a imagem abaixo. Clique em Get started na imagem Developer.
Em seguida escolha a opção SMTP Relay e prossiga para a próxima etapa
Nessa tela você pode clicar em continuar, mais adiante configuramos as credenciais do nosso SMTP.
2. Configurando SMTP
Agora que a nossa conta já está criada e pré-pronta, precisamos configurar nosso domínio no Mailjet e configurar nossas credenciais.
Na mesma janela que você está, desça a página até encontrar a opção 3 e clique em Add and validade domain.
Na nova janela que foi aberta clique no botão Add domain, insira o seu domínio e clique em Continue.
Na próxima etapa você vai ter duas opções para poder validar que você é o proprietário do seu domínio. Você pode subir um arquivo de texto para a raiz do WordPress ou criar um registro TXT no DNS.
Para ser mais objetivo e rápido, vou criar o arquivo de texto na raiz do meu WordPress, exatamente com o nome do arquivo que destaquei em vermelho na imagem acima.
No diretório home do meu WordPress eu criei o arquivo com o comando abaixo
touch nome_arquivo
Agora clico em Check now para validar o domínio.
Se o domínio foi validado, você verá uma mensagem como a imagem abaixo:
Mas ainda não acabou nossas configurações, precisamos realizar as autenticações para o domínio com registros SPF e DKIM caso contrário nossos e-mails podem cair sempre na caixa de spam ou até mesmo ser recusados pelo servidor de destino.
Clique em Authenticate this domain, e agora sim temos as duas configurações a serem feitas no nosso DNS. O SPF e o DKIM!
Antes de mais nada clique no botão amarelo para que o registro SPF seja gerado, e em seguida você verá o conteúdo a ser adicionado no DNS.
Após adicionar os registros, aguarde alguns minutos ou até mesmo horas para a propagação do DNS, assim que tudo estiver propagado você verá uma tela igual a imagem abaixo e isso significa que nosso domínio está autenticado e pronto para utilizar o Mailjet.
E para finalizar, vamos criar as chaves de API do nosso SMTP para que possamos conectar o WordPress ao SMTP. Clique no menu inicial para voltar a página inicial:
Em seguida clique em Setup my SMTP
Agora clique em Retrieve your API credentials
Agora sim, clicamos em Generate Secret Key para gerar nosso par de chaves
Guarde os dados de API Key e Secret Key, sugiro copiar e guardar em um local seguro, e será com essas credenciais que vamos configurar no WordPress agora.
Configurando SMTP no WordPress
Para configurar o Mailjet no WordPress vamos utilizar um plugin bem conhecido, o WP Mail SMTP by WPForms. No menu de pesquisa de plugins apenas coloque o nome do plugin e realize a sua ativação.
Assim que ativado, precisamos configura-lo. Clique em Vamos começar, para dar início.
Esse plugin é bem interessante pois ele oferece compatibilidade com diversos provedores de SMTP Relay como Google, Sendgrid, AWS SES, Mailgun e Outlook.
No entanto, vamos escolher a opção Outro SMTP e clicar em Salvar e continuar.
Agora colocamos as informações do nosso SMTP Mailjet, como nome do host usuário e senha que são as credenciais de API que geramos. Basta preencher os dados corretamente como as imagens abaixo:
Host: in-v3.mailjet.com
Para finalizar, clique em Salvar e continuar, nas três telas seguintes. Na quarta tela clique em Pular esta etapa, e na última tela clique em Concluir configuração.
Agora podemos testar se o nosso WordPress está enviando e-mails corretamente através do Mailjet. Para isso, podemos realizar um envio de e-mail de testes utilizando o plugin que acabamos de instalar. Clique no menu superior em E-mail de teste
Insira o nome do e-mail para quem deseja enviar um e-mail de teste e clique em Enviar e-mail
Rapidamente recebi o e-mail na caixa de entrada
Podemos constatar e verificar que o nosso WordPress está enviando e-mails corretamente. Qualquer atividade que envolva notificações, envios de redefinições de senhas, ou o que for, o WordPress utilizará o SMTP configurado para envios.
Conclusão
Quando configuramos um servidor para hospedagem wordpress também temos que pensar nos envios de e-mail, caso contrário toda e qualquer notificação o WordPress não irá conseguir enviar.
O Mailjet é uma opção gratuita e que é bem interessante para projetos pequenos, para projetos maiores como lojas e grandes portais o AWS SES pode ser a melhor opção para envios de e-mail e newsletter.