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

Bloquear .env e .git no nginx: as regras que ainda deixam o arquivo vazar

Negar /.env no nginx parece resolvido até alguém pedir /wp-content/uploads/.env ou backup.sql. As regras que testei e os furos que…

13 horas atrás

Canonical errado no Yoast: corrigindo pelo filtro wpseo_canonical

O Search Console marca suas páginas 2, 3 e 4 como alternativas da página 1? Ajuste a tag canônica do…

16 horas atrás

Layout XML do Magento 2: remover bloco de módulo de terceiro

Um módulo de terceiro plantou um banner no topo da loja e você não quer desinstalar nada: tire o bloco…

1 dia atrás

Restaurar dump do Magento 2 em outro servidor: trocar a base_url no SQL

Importou o banco de produção e o site pula para o domínio antigo? Rode o UPDATE em core_config_data, limpe o…

2 dias atrás

Criar exceção customizada em PHP: quando estender Exception compensa

Seu catch trata pedido inexistente e banco fora do ar do mesmo jeito. Veja como criar exceção customizada em PHP…

3 dias atrás

DataProvider Magento 2: form do admin abre com campos vazios ao editar

O form do admin salva mas abre em branco na edição: veja o getData() indexado pelo id da entidade e…

4 dias atrás