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.