Pular para o conteúdo principal

Email Listener

Com o Email Listener, você consegue receber emails em um endereço de email específico e processar esses emails com uma lógica definida no Builder.

Como configurar

Para configurar o Email Listener, você precisa configurar o parâmetro handler com a lógica que será executada quando o Email Listener receber um email, funciona de forma muito similar ao HTTP Listener.

É possível configurar aliases para o Email Listener, que são endereços de email que serão tratados como o endereço do Email Listener.

warning

A validação de alias único não é feita pelo Builder, portanto, haverá conflito caso você configure um alias que já esteja em uso por outro Email Listener.

Estrutura do payload

Os dados disponíveis no payload do Email Listener são:

  • emailId: id interno do Email Listener.
  • headers: cabeçalhos do email em formato de objeto.
  • subject: assunto do email.
  • attachments: lista de URLs com anexos e imagens do email. Esses arquivos são salvos em um Drive.
  • from: um objeto com os dados do remetente do email.
    • value: lista de objetos com os seguintes dados:
      • address: endereço de email do remetente.
      • name: nome do remetente.
      • group: grupo de emails do remetente.
    • text: endereço formatado em texto simples.
    • html: endereço formatado em HTML.
  • to: um objeto com os dados do destinatário do email.
    • value: lista de objetos com os seguintes dados:
      • address: endereço de email do destinatário.
      • name: nome do destinatário.
      • group: grupo de emails do destinatário.
    • text: endereço formatado em texto simples.
    • html: endereço formatado em HTML.
  • cc: um objeto no mesmo formato do to dos endereços em cópia.
  • bcc: um objeto no mesmo formato do to dos endereços em cópia oculta.
  • replyTo: um objeto no mesmo formato do from com os endereços de resposta.
  • date: data e hora do email.
  • messageId: valor do Message-ID.
  • html: corpo do email em HTML.
  • text: corpo do email em texto simples.
  • textAsHtml: corpo do email formatado em HTML.
  • destination: endereço de email do destinatário. Nesse caso, é o endereço do Email Listener que recebeu o email.

Exemplo de payload:

{
"emailId": "ca1pj5l3ggbrld7h25b90riu2fp5hhce2j75cq01",
"attachments": [],
"headers": {
"return-path": {
"value": [
{
"address": "example@example.com",
"name": ""
}
],
"html": "<span class=\"mp_address_group\"><a href=\"mailto:example@example.com\" class=\"mp_address_email\">example@example.com</a></span>",
"text": "example@example.com"
},
"x-ses-spam-verdict": "PASS",
"x-ses-virus-verdict": "PASS",
"mime-version": "1.0",
"from": {
"value": [
{
"address": "example@example.com",
"name": "Example"
}
],
"html": "<span class=\"mp_address_group\"><span class=\"mp_address_name\">Example</span> <<a href=\"mailto:example@example.com\" class=\"mp_address_email\">example@example.com</a>></span>",
"text": "\"Example\" <example@example.com>"
},
"date": "2025-04-07T23:05:23.000Z",
"subject": "Subject",
"to": {
"value": [
{
"address": "vO7nZF1elH4SUfKXlYFb3@jealous-present-2035.data2.email",
"name": ""
},
{
"address": "example2@example.com",
"name": "Example"
}
],
"html": "<span class=\"mp_address_group\"><a href=\"mailto:vO7nZF1elH4SUfKXlYFb3@jealous-present-2035.data2.email\" class=\"mp_address_email\">vO7nZF1elH4SUfKXlYFb3@jealous-present-2035.data2.email</a></span>, <span class=\"mp_address_group\"><span class=\"mp_address_name\">Example</span> <<a href=\"mailto:example2@example.com\" class=\"mp_address_email\">example2@example.com</a>></span>",
"text": "vO7nZF1elH4SUfKXlYFb3@jealous-present-2035.data2.email, \"Example\" <example2@example.com>"
},
"content-type": {
"value": "multipart/alternative",
"params": {
"boundary": "000000000000fe9cc7063238456b"
}
}
},
"subject": "Testando 2",
"from": {
"value": [
{
"address": "example@example.com",
"name": "Example"
}
],
"html": "<span class=\"mp_address_group\"><span class=\"mp_address_name\">Example</span> <<a href=\"mailto:example@example.com\" class=\"mp_address_email\">example@example.com</a>></span>",
"text": "\"Example\" <example@example.com>"
},
"to": {
"value": [
{
"address": "vO7nZF1elH4SUfKXlYFb3@jealous-present-2035.data2.email",
"name": ""
},
{
"address": "example2@example.com",
"name": "Example"
}
],
"html": "<span class=\"mp_address_group\"><a href=\"mailto:vO7nZF1elH4SUfKXlYFb3@jealous-present-2035.data2.email\" class=\"mp_address_email\">vO7nZF1elH4SUfKXlYFb3@jealous-present-2035.data2.email</a></span>, <span class=\"mp_address_group\"><span class=\"mp_address_name\">Example</span> <<a href=\"mailto:example2@example.com\" class=\"mp_address_email\">example2@example.com</a>></span>",
"text": "vO7nZF1elH4SUfKXlYFb3@jealous-present-2035.data2.email, \"Example\" <example2@example.com>"
},
"messageId": "<CAALhj6YBwGx6Bz+c9oX3FrixYwMJmganZ859cfe-Bt_6DZxE6w@mail.gmail.com>",
"html": "<div dir=\"ltr\">Email body</div>\n",
"text": "Email body\n",
"textAsHtml": "<p>Email body</p>",
"destination": "vO7nZF1elH4SUfKXlYFb3@jealous-present-2035.data2.email"
}

Limitações

  • Não é possível configurar um domínio customizado para o Email Listener.