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

YouTube sem cookie: adiar o embed do vídeo e do Maps até o aceite

Seu banner de consentimento está certo, mas o vídeo incorporado grava cookie de terceiro no primeiro carregamento. Troque o domínio…

7 horas atrás

Custom post type dando 404: flush_rewrite_rules na ativação do plugin

A listagem do custom post type abre e o single dá 404 no WordPress 6.9. Entenda o cache das rewrite…

2 dias atrás

systemd timer no lugar do cron: agendar script com log e sem execução dupla

Um par .service e .timer substitui a linha do crontab com log no journal, execução perdida recuperada no boot e…

2 dias atrás

Descrição em massa no WooCommerce: wp eval-file lendo a lista de SKUs

400 produtos importados do fornecedor com a aba Descrição vazia. Um wp eval-file percorre os SKUs sem texto, grava pelo…

2 dias atrás

Frete grátis no WooCommerce: esconder as outras opções de entrega

Some com PAC e SEDEX da lista quando o frete grátis está disponível, usando woocommerce_package_rates, e limpe o cache de…

3 dias atrás

Erro HTTP no WordPress ao enviar imagem para a biblioteca de mídia

A barra de upload chega no fim e o WordPress devolve só "Erro HTTP". Separe as três causas: Imagick barrado…

3 dias atrás