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

Cron do Magento 2 não roda: status missed e pending no cron_schedule

Pedido que não fatura e e-mail que não sai porque todo job fica missed: como ler a cron_schedule, conferir o…

13 horas atrás

Gerar slug de URL em PHP: acento, espaço e símbolo fora do endereço

Uma função curta em PHP 8.3 que transforma Camiseta Preta Tamanho GG em camiseta-preta-tamanho-gg, sem depender do locale do servidor.

1 dia atrás

Log de consentimento LGPD: a tabela MySQL que guarda a prova do aceite

O banner registra o clique só no navegador e some. Veja a tabela MySQL e o endpoint que gravam a…

2 dias atrás

Comando CLI Magento 2: criar a classe e registrar no di.xml

A classe do comando existe e o bin/magento list ignora ela. Falta o registro no di.xml: aqui vai a classe…

3 dias atrás

Traduzir o pt_BR.csv do Magento 2 em lote sem perder a coluna de origem

Como traduzir duas mil linhas do pt_BR.csv do Magento 2 lendo com fgetcsv e regravando com fputcsv, sem encostar na…

3 dias atrás

Variação não está disponível no WooCommerce: limpar transients e lookup

Produto variável respondendo "Desculpe, este produto não está disponível" mesmo com a variação ativa: limpe os transients do WooCommerce e…

4 dias atrás