Back-End

2 out, 2012

Como publicar artigos através de e-mail no WordPress

Publicidade

A ideia de poder criar artigos através do envio de um e-mail é inovadora mas já é explorada há algum tempo por imensos desenvolvedores em todo o mundo; e no que toca o WordPress, criar e postar um artigo através do envio de um e-mail já é possível. No entanto, esta opção tem os seus lados negativos, que também vamos abordar nesse artigo. Depois de seguir os passos indicados, você saberá como postar através de e-mail e terá a sua instalação WordPress habilitada a trabalhar com essa funcionalidade.

Publicando conteúdos manualmente

O primeiro passo é determinar os elementos relativamente à postagem por e-mail, nomeadamente o servidor de e-mail, a porta, o login, password e categoria em que os artigos serão inseridos. Para definir estas propriedades, dirija-se a Definições -> Escrita e insira os valores corretos para a utilização do e-mail:

Para que os novos artigos possam ser criados, você pode ir ao arquivo wp-mail.php manualmente, bastando digitar www.oseuwebsite.com/wp-mail.php depois de ter recebido o mail, carregar através de iframe para o footer do website, fazer a chamada no arquivo functions.php ou inserir em um cronjob. Se não for ao arquivo wp-mail.php, a caixa de entrada do e-mail não será verificada e não será inserido nenhum artigo.

a seguir, vamos exemplificar o processo manual. O primeiro passo é enviar um e-mail para o e-mail definido nas opções de escrita da sua instalação WordPress:

Depois de enviado o e-mail, vá ao arquivo wp-mail.php utilizando o endereço www.oseuwebsite.com/wp-mail.php. No nosso caso, como estamos utilizando uma conta GMail, onde faremos a busca pelos e-mails para criar os artigos. Ela (a conta) terá que passar por um processo de segurança da Google que irá bloquear o acesso do seu arquivo wp-mail.php ao e-mail. Para permitir o acesso, é preciso acessar o e-mail que você receberá informando que o login suspeito foi bloqueado. Nele terá um link onde poderá conceder permissões ao aplicativo, neste caso o wp-mail.php, para que este possa acessar a sua caixa de entrada.

Caso não tenha recebido o e-mail, verifique se na sua conta do gmail não tem uma notificação para informar que um login suspeito foi detectado. Caso tenha, clique no link fornecido e será levado para a seguinte tela, onde poderá conceder imediatamente o acesso ao aplicativo – ao clicar em “Yes” onde fala em permitir futuros logins do aplicativo:

Uma vez dada a permissão para o login do aplicativo na sua conta, é hora de passar para o próximo passo: aparecerá uma tela onde lhe é sugerido que faça login com o aplicativo nos próximos dez minutos para que seja dada a permissão ao mesmo:

Depois iremos fazer a busca do conteúdo no e-mail. Para isso, dirija-se uma vez mais ao seu arquivo wp-mail.php no endereço www.oseuwebsite.com/wp-mail.php e desta vez o processo será concluído:

Como poderá verificar, tanto o email que enviamos para teste como o e-mail que foi recebido do suporte da Google foram processados pelo aplicativo, o que significa que qualquer e-mail que você tenha na sua conta de entrada será processado – daí a importância de você criar uma conta de e-mail que mais ninguém conheça e que não esteja associada a mailing lists, de forma a que você não publique inadvertidamente conteúdos que não interessam publicar. Embora existam alguns caracteres que não são processados devidamente, a importação do conteúdo é feita sem problemas e todos os caracteres são processados normalmente sem problemas.

Dirija-se ao seu painel de administração e observe que os artigos já se encontram presentes na lista:

Os artigos estão pendentes e não foram publicados automaticamente. Isto é particularmente útil para evitar que sejam publicados conteúdos de forma errónea, permitindo-lhe fazer a revisão dos conteúdos importados do seu e-mail. Depois de processados, os emails não serão buscados novamente, e se tentar fazer a busca por novos conteúdos, a mensagem que lhe será apresentada será a seguinte:

Publicando conteúdos automaticamente

Apesar de não ter grandes vantagens relativamente sobre o processo manual, é possível fazer a busca de conteúdos de forma automática, através de uma série de truques. Isto poderá ser feito utilizando um iframe, através de uma inserção de uma função no arquivo functions.php do seu template ou definir um cronjob no seu servidor.

IFRAME

O primeiro que vamos abordar é a inserção de um pequeno trecho de código iframe no rodapé do seu website, bastando alterar o endereço para o endereço do seu website, que vai fazer com que quando o rodapé for carregado, o trecho de código seja processado e o wp-mail.php execute a sua função:

<iframe src="http://www.oseuwebsite.com/wp-mail.php" name="mailiframe" width="0" height="0" frameborder="0" scrolling="no" title=""></iframe>

Desta forma, sempre que o seu website for visitado, os e-mails irão ser processados e inseridos no seu blog, removendo assim a necessidade de você visitar o wp-mail.php manualmente para fazer a busca pelos e-mails.

FUNCTIONS.PHP

O segundo método disponível tem a ver com a utilização de uma função e inseri-la no arquivo functions.php presente na pasta do seu template. Este processo também é bastante simples e torna a importação dos emails automática removendo a necessidade de você ter de fazê-lo manualmente. Localize o arquivo functions.php na pasta do seu template e insira o seguinte código:

add_action('shutdown', 'retrieve_post_via_mail');
function retrieve_post_via_mail() {
flush();
if(get_transient('retrieve_post_via_mail')) {
return;
} else {
$mail = wp_remote_get(get_bloginfo('wpurl').'/wp-mail.php');
if(!is_wp_error($mail)) {
set_transient('retrieve_post_via_mail', 1, 60 * 15);
} else {
set_transient('retrieve_post_via_mail', 1, 60 * 5);
}
}

Este código além da funcionalidade de fazer a verificação dos e-mails de forma automática, faz ainda uma ressalva em termos da frequência de verificação dos e-mails para não sobrecarregar o servidor. Este processo tem uma grande vantagem relativamente aos cronjobs, que se prende com o facto de que os cronjobs são executados independentemente do tráfego que o website tenha, o que pode levar a que se o website estiver num momento de sobrecarga e esteja no seu limite, ao executar um cronjob em que a quantidade de processamento seja considerável, poderá fazer com que o servidor tenha um crash e os visitantes fiquem bastante frustrados.

CRONJOBS

A última opção que iremos apresentar é a utilização de um cronjob para executar o arquivo wp-mail.php, de forma a verificar e importar de novos emails. Para isso, dirija-se ao cPanel do seu alojamento e procure os cronjobs. Depois de abrir a página dos cronjobs, procure a zona para inserir um novo. Neste caso, estamos a definir que o cronjob irá ser executado a cada uma hora, durante todos os dias:

Depois, insira o seguinte código no campo “Command”:

php diretorio_da_instalacao/wp-mail.php

O código é bastante simples, passando apenas por apontar para o diretório do seu blog onde está o arquivo wp-mail.php. Depois de preencher os campos, clique em Add New CronJob e será adicionado:

Dicas para postagem através de e-mail

Veja algumas dicas que são valiosas e que convém você saber para compreender melhor o funcionamento da postagem por e-mail:

  • Cada e-mail irá criar um novo artigo, em que o assunto do e-mail será o título do artigo, e o conteúdo do e-mail será o conteúdo do artigo;
  • Só serão processados os e-mails que estiverem escritos em texto simples. Os e-mails que tiverem anexos não serão processados;
  • Se no assunto do e-mail estiver Re:, FW ou FWD esses caracteres serão inseridos como título do artigo, não havendo qualquer seleção de caracteres;
  • No que diz respeito ao conteúdo, poderá utilizar os dois pontos duas vezes seguidas “::” para determinar onde começa e onde acaba o conteúdo. Por exemplo, no campo assunto do email, se você colocar “Isto é um :: e-mail” aquilo que será inserido como titulo do artigo é “Isto é um”. No que toca ao conteúdo do e-mail, se você inserir “Isto é o :: conteúdo” aquilo que será inserido é “conteúdo”;
  • Se o e-mail tiver sido enviado através de um e-mail que corresponder a um utilizador existente dentro da instalação WordPress, o conteúdo será publicado em nome desse autor;
  • Se o e-mail for enviado de uma conta que não exista dentro da instalação WordPress, os artigos serão inseridos como pendentes ou como rascunho e o autor atribuido será aquele que tiver o ID menor;
  • A primeira vez que o script wp-mail.php for executado, ele irá puxar TODOS os emails presentes na sua caixa de entrada;
  • Ao fazer a verificação manual por novos e-mails ao visitar o arquivo wp-mail.php terá duas hipóteses: ou verá os resultados da busca por novos e-mails, ou será apresentado um estado de erro. Se efetuar uma nova busca em menos de cinco minutos após a última, será apresentada uma mensagem informando que nao poderá fazer novas buscas tão rapidamente;
  • A criação de artigos através de e-mail não funciona em uma instalação WordPress MultiSite;
  • No caso do GMail, o arquivo wp-mail.php irá fazer a busca dos e-mails na pasta da Caixa de Entrada, mas também existem relatos que todos os e-mails foram processados.

Abraços!