Extrair emails de um texto
Cole qualquer texto e receba todos os endereços de e-mail em uma lista limpa: de uma frase que cita hello@example.com sai esse endereço, com contagem 1. Os repetidos são unidos ou mantidos, como você escolher. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- Contact us at hello@example.com today.
- Endereços de e-mail extraídos
- hello@example.com
- Número de endereços
- 1
- Modo de correspondência
- Unique
Cole qualquer texto plano e obtenha cada endereço com aspeto de email numa lista limpa. Escolha unique para remover duplicados sem distinguir maiúsculas conservando a primeira forma, ou all para guardar cada ocorrência. Sem rede nem verificação de caixa: só extração local.
Endereços únicos ou todas as ocorrências
Cole anotações, uma conversa de e-mails ou o texto de uma página e a ferramenta percorre tudo da esquerda para a direita, procurando o que tiver o formato nome@domínio.terminação. Na opção padrão, endereços que só diferem em letras maiúsculas contam uma vez: fica a primeira grafia, na ordem em que cada endereço apareceu. A outra opção mantém cada ocorrência com as maiúsculas originais, o que ajuda quando você precisa saber depois quantas vezes um endereço aparece. Uma frase como Contact us at hello@example.com today resulta em um único endereço e contagem 1.
O que ela não faz e onde ajuda
A ferramenta encontra endereços só pelo formato. Ela não faz chamadas de rede e não corrige um endereço para parecer mais certo, então uma esquisitice como dois pontos seguidos antes da arroba aparece exatamente como foi escrita. Por isso serve para tirar contatos de anotações coladas e montar uma lista de potenciais clientes, juntar todas as pessoas citadas em um chamado longo de suporte ou preparar uma lista de endereços únicos antes de importar para uma planilha.
Extrator permissivo, não validador RFC completo
Percorre o texto da esquerda para a direita com um padrão ASCII fixo local@domínio.tld. Captura os endereços tal como aparecem, incluindo raridades como pontos duplos no local. Não prova que a caixa exista e não reescreve a cadeia para a tornar mais estrita.
Unicode e correio internacionalizado fora de v1
Caracteres não ASCII no local não entram no padrão, por isso um local misto pode dar um match parcial ASCII em vez do token completo ou vazio. IDN e punycode não são suportados nesta versão.
Limites e erros tipados
O texto é obrigatório e tem teto de cem mil caracteres. A resposta não ecoa o texto fonte completo, só emails, count e mode.
Casos de uso
CRM e leads
Retire endereços de notas ou fios colados.
Suporte
Reúna contactos mencionados num ticket longo.
Limpeza de dados
Construa uma lista única antes de importar.
Perguntas frequentes
A ferramenta verifica se a caixa de e-mail existe?
Não. Ela apenas encontra trechos com formato de endereço, sem consultar nenhum servidor de e-mail nem fazer chamadas de rede. Para saber se uma caixa existe de fato, é preciso uma verificação à parte.
Funciona com endereços com acento ou domínios internacionais?
Não totalmente. Letras com acento ou de outros alfabetos antes da arroba não entram no padrão procurado, então o resultado pode trazer só a parte sem acento ou nada. Domínios internacionais não são aceitos nesta versão.
Quanto texto posso colar de uma vez?
Até 100.000 caracteres. Se o texto for maior, divida em partes antes de colar; a caixa também não pode ficar vazia, porque sempre é preciso um texto para examinar.
O resultado traz o meu texto original?
Não. O resultado contém só os endereços encontrados, quantos são e a opção usada. O resto do que você colou, como nomes ou anotações ao redor dos endereços, nunca é repetido.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/text/extract-emails \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Contact us at hello@example.com today."}'const res = await fetch("https://api.kit.forhosting.com/text/extract-emails", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Contact us at hello@example.com today."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/extract-emails",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Contact us at hello@example.com today."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/extract-emails", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Contact us at hello@example.com today."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Contact us at hello@example.com today."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/extract-emails", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "Contact us at hello@example.com today."
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.extract_emails",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_text_chars | 100000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Unique versus all
unique colapsa correspondências que só diferem em maiúsculas, guarda a primeira forma e a ordem de primeira aparição. all conserva cada ocorrência com o casing original, útil se mais tarde quiser frequências num pipeline.
Limites e erros tipados
Modes desconhecidos e texto que não é string devolvem invalid_input tipado.
Casos de integração
CI
Fixe arrays extraídos em fixtures golden.
Perguntas técnicas
Verifica se a caixa existe?
Não. Só extrai padrões do texto.
O que é unique?
Dedup sem maiúsculas, primeira forma e ordem.
Há endereços internacionalizados?
Não por completo na v1.
Devolve o texto completo?
Não. Só emails, count e mode.
Qual o limite?
100000 caracteres.
É grátis no navegador?
Sim. A app nativa usa a API a US$ 0,002.