1. Home
  2. SMTP Locaweb
  3. Como configurar o Webhook – SMTP Locaweb

Como configurar o Webhook – SMTP Locaweb

Para utilizar o Webhook você precisa ter pelo menos um serviço de hospedagem, demonstraremos neste tutorial, a utilização de um código PHP que vai gerar um arquivo TXT com estas informações, mas também pode ser usado ASP.

Além de gerar um arquivo é possível que você grave ou exiba esta informação da forma que deseja, ela é passada usando o método POST, então pode ser manipulado da forma que você precisar.

Relatório de Informações
  • Destinatário;
  • Motivo do bounce (descrição e código do erro);
  • Horário de abertura (se houve abertura);
  • Cabeçalho da mensagem;
  • Assunto da mensagem.

Os códigos estão divididos em dois, um para que você possa receber os relatórios simples de envio e outro que vai exibir as informações do envio e abertura de horário.

O Ideal que é estes dois códigos estejam separados em duas pastas diferentes para que o controle seja feito da melhor forma possível.

Bounces
  • Crie um arquivo, exemplo: bounce.php.
  • Pode ser usado qualquer editor de código, os mais usados são notepad++ ou sublime.

Veja abaixo um código exemplo onde os itens marcados em Azul são as variáveis que vão receber as informações dos itens em Vermelho 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.

Código Exemplo

$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 

  • Após feito isso, acesse um gerenciador FTP (Filezilla) e faça o upload do seu arquivo para a pasta desejada.
  • Feito isso pegue o link do arquivo criador e copie para o campo “Bounces” dentro do painel do SMTP, para isso clique em “Editar” cole o link e depois clique em “Salvar”.

Se tudo correr bem vai aparecer a seguinte mensagem “URL de notificação salva com sucesso!”, caso ele de o erro “Erro ao acessar a URL de notificação.” verifique se o caminho do arquivo esta correto.

Quando terminado faça alguns envios de teste para e-mails inexistentes (ex: teste123@teste.com.br), na pasta para onde foi copiado o arquivo vai ser gerado um documento com o nome “myfile.txt” que foi definido no código que fizemos anteriormente, o conteúdo do arquivo vai ser semelhante com as informações abaixo:

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

Tabela com os possiveis erros de retorno do SMTP

Código Descrição
5.0.0 Desconhecido
5.1.0 Status desconhecido do endereço
5.1.1 O endereço da caixa de emails especificada não existe
5.1.2 Servidor de destino não existe ou é incapaz de receber emails
5.1.3 Endereço de destino é sintaticamente inválido
5.1.4 Endereço ambíguo
5.1.5 Endereço de destino válido
5.1.6 Caixa postal de destino foi removida
5.1.7 O endereço do remetente é sintaticamente inválido
5.1.8 Sistema de origem não existe ou é incapaz de receber emails de retorno
5.2.0 Status desconhecido da caixa de mensagens
5.2.1 Caixa postal não está aceitando mensagens
5.2.2 Caixa postal está cheia
5.2.3 Tamanho da mensagem ultrapassou limite permitido
5.2.4 Problema com expansão de lista de emails
5.3.0 Status desconhecido do sistema de emails
5.3.1 Sistema de emails está cheio
5.3.2 Sistema não está aceitando mensagens
5.3.3 Sistema de destino não suporta alguma característica da mensagem
5.3.4 Mensagem é muito grande para o sistema
5.3.5 O sistema não está corretamente configurado
5.4.0 Status desconheido para a rede
5.4.1 Sem resposta do servidor
5.4.2 Conexão ruim incapaz de completar a entrega da mensagem
5.4.3 Falha de servidor de diretórios
5.4.4 Incapaz de rotear
5.4.5 Congestionameno no sistema de emails
5.4.6 Detectado loop de rotemento
5.4.7 Tempo para entrega expirou
5.5.0 Status desconhecido do protocolo
5.5.1 Comando inválido
5.5.2 Erro de sintaxe
5.5.3 Muitos destinatários
5.5.4 Agumentos inválidos para o comando
5.5.5 Versão errada do protocolo
5.6.0 Status desconhecido da mídia
5.6.1 Mídia não suportada
5.6.2 É necessária conversão porém esta está proibida
5.6.3 É necessária conversão porém esta não está disponível
5.6.4 Ocorreu conversão com perda de dados
5.6.5 Conversão falhou
5.7.0 Status desconhecido de segurança
5.7.1 Entrega não autorizada mensagem recusada
5.7.2 Expansão de lista de emails proibida
5.7.3 Conversão de segurança requerida porém proibida
5.7.4 Feature de segurança não suportada
5.7.5 Falha na criptografia
5.7.6 Algoritmo de criptografia não suportado
5.7.7 Falha na integridade da mensagem
9.9.9 Entrega de mensagem não autorizada
10.1.0 Limite diário de mensagens para destinatário atingido
15.1.1 O endereço da caixa de emails especificada não existe

Aberturas

Para configurar as aberturas, é bem parecido com os bounces, apenas precisamos de alterar um pouco o nosso código, precisamos adicionar a informação de que o usuário abriu a mensagem, e isso se dá através do recebimento de “opened_at=[opened_at]” , então pegue o código anterior e faça algumas adaptações.

No código de exemplo abaixo fizemos a remoção das linhas que fazem referência aos bounces, desta forma deixando que apenas seja exibido o remetente, destinatário, cabeçalho e data de abertura, além disso na linha que faz a formatação das informações que vão ser gravadas no arquivo de texto, fizemos a inclusão da informação de quando foi aberto o e-mail, basta copiar o código e colar no arquivo “aberturas.php”.

Código Exemplo

$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
?> 

Quando o arquivo for criado, suba ele para o seu serviço de hospedagem de preferência em uma pasta criada especificamente para ela e, copie o link do arquivo, acesse o seu painel do SMTP, vá em “Configurações” > “Webhook”, em Aberturas, clique em “Editar” cole o endereço e clique em “Salvar”.

Faça alguns envios para e-mails que você tenha acesso, depois de feito o envio acesse o seu e-mail e abra a mensagem.

Para que a mensagem possa gerar um log de abertura, é preciso que ela esteja em HTML, pois o SMTP inclui um pequeno item HTML na sua mensagem para que assim possa entender o retorno de que foi aberta

Quando houver abertura, vai ser criador o arquivo de log com as informações, as linhas deste arquivo vão ser parecidas com a seguinte:

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.

Atualizado em 12 de julho de 2019

Este artigo foi útil ?

Artigos relacionados