O que é Webhook ?
- Configurado em seu SMTP Locaweb, serve para você receber seus relatórios de Bounces e Aberturas em tempo real, por meio de um arquivo que vamos chamado de “myfile.txt”.
Informações do relatório
-
Destinatário/Remetente (Bounces/Aberturas);
-
Motivo do bounce (descrição e código do erro);
-
Horário de abertura (Se houve abertura);
-
Cabeçalho da mensagem (Bounces/Aberturas);
-
Assunto da mensagem (Bounces/Aberturas);
- Os códigos estão divididos em dois arquivos “.php”, um para que você possa receber os relatórios de erros de envio e outro que vai exibir as informações de abertura.
Configurando o webhook – Bounces/Aberturas
-
Em um bloco de notas ou editor de códigos, crie um arquivo “.php”. Exemplo de nome de arquivo: bounces.php
-
Copie o código abaixo e cole o mesmo no arquivo recém criado.
- Em nosso serviço de webhooks, existem limitações nas portas disponíveis para receber notificações. Para garantir o correto funcionamento do serviço e o tratamento seguro do tráfego, atualmente, são suportadas as portas padrão 80 e 443. Recomendamos o uso da porta 443, pois ela é reservada para tráfego seguro de HTTPS.
Código – bounces
<?php
$bounce_description = $_POST['bounce_description']; // Descrição do bounce
$bounce_code = $_POST['bounce_code']; // Codigo do erro do bounce
$message_sender = $_POST['sender']; // Remetente
$message_to = $_POST['to']; // Destinatário
$message_subject = $_POST['subject'];// Assunto da mensagem
$x_smtplw = $_POST['x-smtplw'];// cabeçalho
$myfile = fopen("myfile.txt", "a") or die("Unable to open file");// Abertura do arquivo TXT
$date = date('m/d/Y H:i:s', time());// Geração da data para o log
$txt = "[$date] bounce_description: $bounce_description\tbounce_code: $bounce_code\tsender: $message_sender\tto: $message_to\tsubject: $message_subject\tx_smtplw: $x_smtplw\n"; // Definindo uma variável com o texto formatado
fwrite($myfile, $txt); // Gravação do texto no arquivo txt criado
fclose($myfile); // Fechamento do arquivo
?>
- Veja no código exemplo onde os itens marcados em Azul são as variáveis que vão receber as informações dos itens em Laranja que são as informações que nossos servidores mandam para sua página, os itens em Verde são os itens que vão formatar o arquivo, gera-lo e fecha-lo.
- O mesmo se aplica para o relatório de aberturas, mas alterando o código.
Código – aberturas
<?php
$message_sender = $_POST['sender']; // Remetente
$message_to = $_POST['to']; // Destinatário
$message_subject = $_POST['subject']; // Assunto da mensagem
$x_smtplw = $_POST['x-smtplw']; // cabeçalho
$opened_at = $_POST['opened_at']; // Data de abertura
$myfile = fopen("myfile.txt", "a") or die("Unable to open file"); // Abertura do arquivo TXT
$date = date('m/d/Y H:i:s', time()); // Geração da data para o log
$txt = "sender: $message_sender\tto: $message_to\tsubject: $message_subject\tx_smtplw: $x_smtplw\topened at: $opened_at: $openedat\n"; // Definindo uma variável com o texto formatado
fwrite($myfile, $txt); // Gravação do texto no arquivo txt criado
fclose($myfile); // Fechamento do arquivo
?>
-
Crie também um arquivo com o nome”myfile.txt” que será responsável por receber as informações e apresenta-las a você. Este arquivo sera importado para o FTP juntamente com os outros dois porém sem nenhum conteúdo.
-
Após a criação dos arquivos, acesse um gerenciador FTP (Recomendamos o FileZilla) e faça o upload dos três arquivos dentro da pasta public_html.
-
Agora você precisará adicionar o endereço direto dos arquivos que estão dentro de seu gerenciador FTP.
-
Para isso vá em: Configurações > Webhook > Clique em editar para colocar o caminho > Apos colocar o endereço clique em salvar.
Exemplo
- O endereço exemplo utilizado acima é apenas em casos os arquivos estejam diretamente dentro da pasta public_html. Caso sejá criada uma nova pasta dentro desta você precisará indicar no endereço com diretório.
Exemplos de retorno de bounces/aberturas
- Quando o envio for efetuado as informações retornaram dentro do “myfile.txt”, abaixo segue um exemplo para cada um dos casos de uso:
-
Bounces
bounce_description: O endereço de e-mail especificada não existe bounce_code: 5.1.1 sender: remetente@seudominio.com.br to: destinatario@locaweb.com.br subject: Assunto da mensagem x_smtplw: cabeçalho da mensagem
-
Abeturas
sender: remetente@remetente.com.br to: destinatario@destinatario.com.br subject: Assunto da mensagem x_smtplw: Cabeçalho da Mensagem opened at: 2016-11-22T15:04:51-02:00 (Data e horário da abertura)
- Para mais exemplos de implementação do Webhook clique aqui.