Wordpress

Como enviar e-mails utilizando wp_mail() – WordPress

Enviando e-mails pelo WordPress, com cabeçalhos (headers) personalizados, utilizando a função wp_mail(). Função nativa do WordPress por onde todos os e-mails são enviados.

Conhecendo a função wp_mail

wp_mail( string|array $to, string $subject, string $message, string|array $headers = '', string|array $attachments = array() )

Parâmetros:

  • string|array $to: Array ou String com destinatários.
  • string $subject: Assunto.
  • string $message: Mensagem, Conteúdo do e-mail.
  • string|array $headers: Cabeçalhos do e-mail.
  • string|array $attachments = array(): Anexos

Enviando o e-mail

Exemplo de envio para múltiplos destinatários.

$to = array("teste01@test.com","teste02@test.com");

$subject = 'Assunto';
$message= 'conteúdo';
$header = array('Content-Type: text/html; charset=UTF-8');
 
$result = wp_mail( $to, $subject, $message, $header );

var-dump($result);

Na variável “header” você pode configurar os cabeçalhos adicionais do seu e-mail, tais como cópia (CC), cópia oculta (CCO), nome e e-mail do remetente (From / From name), entre outros.

Caso o e-mail seja enviado com sucesso, será retornado true ou false.

Headers customizados

Exemplo de “headers” customizado com múltiplas cópias.

$header[] = 'From: Teste <teste@teste.com.br>';
$header[] = 'Cc: Roger <teste@teste2.com.br>';
$header[] = 'Cc: teste@teste3.com.br';

Exemplo com Cópia oculta:

$header[] = 'Cco: teste@teste4.com.br';

Responder para “reply-to” personalizado:

$header = array(
  'Reply-To: Nome <test@test.com>',
);

Um pouco mais sobre a função

WordPress utiliza a classe PHPMailer para enviar e-mails, o qual utiliza a função nativa “mail()” do PHP para realizar os envios.

O servidor de hospedagem deve estar devidamente configurado para que o envio pelo função mail() ocorra sem erro.

Você pode filtrar os erros gerados pelo PHPMailer utilizando o filtro wp_mail_failed.

Servidor de SMTP externo

Caso não seja possível enviar e-mails pelo o seu HOST e você tenha que configurar um SMTP, clique neste link: Configurando envio de e-mail por SMTP autenticado no WordPress para configurar um servidor SMTP externo no seu site WordPress.

Mais exemplos

$to = 'para@dominio.com.br';
$subject = 'Assunto de teste';
$body = 'conteúdo html <b>de</b> teste';
$headers = array('Content-Type: text/html; charset=UTF-8');
 
wp_mail( $to, $subject, $body, $headers );
// assumindo que as variaveis $to, $subject, $message foram definidas anteriormente...
 
$headers[] = 'From: Roger <contato@rogertakemiya.com.br>';
$headers[] = 'Cc: Roger 2 <contato1@rogertakemiya.com.br>';
$headers[] = 'Cc: contato2@rogertakemiya.com.br'; 
 
wp_mail( $to, $subject, $message, $headers );

 

Resumo
Nome do Artigo
Enviando e-mails utilizando função wp_mail no Wordpress
Descrição
Tutorial com códigos de exemplo ensinando a enviar e-mails pelo Wordpress utilizando a função wp_mail, com cópia, cópia oculta, responder para, etc
Autor
Editor
Roger Mauricio Takemiya
Logo do Editor

Post Recentes

WordPress não aparece no Google: noindex esquecido e robots.txt virtual

Site novo há semanas e nenhuma página indexada? Confira a caixinha de visibilidade em Leitura, o noindex no HTML e…

18 horas atrás

array_map perde as chaves do array no PHP: como manter o índice

O retorno do array_map voltou com índice 0, 1, 2 e o código que dependia da chave quebrou. Entenda quando…

2 dias atrás

Backup do Magento 2 com mysqldump: dump leve sem as tabelas de log

Dump de 12 GB que demora horas porque arrasta report_event e cron_schedule. Faça o backup em duas passadas, guarde só…

2 dias atrás

Preference do di.xml não aplica no Magento 2: o que checar antes

Escreveu a preference e o Magento 2 continua usando a classe original? Confira a área do di.xml, o generated/code e…

3 dias atrás

Filtro por atributo do WooCommerce vazio: global x personalizado

Cadastrou Cor direto na aba Atributos do produto e o filtro por atributo vem vazio. Veja como identificar o tipo,…

4 dias atrás

wp db query: rodar SQL no WordPress pelo WP-CLI sem phpMyAdmin

Precisa de um SELECT no banco do cliente e só tem SSH? O wp db query pega a senha do…

4 dias atrás