Enviar email no formato HTML via WordPress

Para o envio de email o WordPress faz uso da função wp_mail() que disponibilizam os seguintes argumentos para serem trabalhados:

wp_mail( $destinatario, $assunto, $mensagem, $headers, $anexos );

Os dois últimos argumentos são opcionais.

Por padrão, esta função somente envia emails no formato texto, sem formatação, ou seja, qualquer tag html que exista no seu email será mostrada ao usuário por extenso.

Para resolver este problema, existem duas formas de trabalhar essa função para que ela exiba corretamente as suas tags html.

A primeira e mais simples é adicionando o content-type diretamente na variável $header:

$headers = array("From: Wildiney <criacao@wildiney.com>",
	         "Content-Type: text/html"
	         );

Se forem poucos os lugares onde você fará uso desta função, o exemplo acima resolve perfeitamente. Agora se o uso for constante, você pode configurar diretamente no arquivo functions.php.

add_filter('wp_mail_content_type','set_contenttype');

function set_contenttype($content_type){
  return 'text/html';
}

Existe também uma versão mais resumida da função acima que eu encontrei em alguns fóruns.

add_filter('wp_mail_content_type', create_function('', 'return "text/html"; '));

Nesse caso fica a gosto, não notei nenhuma diferença no desempenho, apesar de acreditar que usar a função do php create_function possa gerar mais processamento do que explicitar diretamente o que quer.

2 respostas para “Enviar email no formato HTML via WordPress”

    1. Oi Paula,
      Para você enviar um email avisando sobre um novo post, você tem que editar o functions.php ou criar um plugin que por meio do hook add_action ( ‘publish_post’, ‘sua_funcao’ ); dispare para a sua lista de emails o excerpt/resumo do seu post.
      Como referência, você pode acessar http://codex.wordpress.org/Plugin_API que tem um exemplo bem parecido do que você precisa, basta adaptar.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *