B2B 폼에서 무료 이메일 도메인 차단하기: 4,768개 도메인 목록과 무료 API

B2B 폼에서 무료 이메일 도메인 차단하기: 4,768개 도메인 목록과 무료 API
Unif Cookbooks team
Unif Cookbooks team

HubSpot 폼이 차단하는 4,768개 무료 이메일 도메인 목록의 내용, Gmail 가입 차단이 역효과를 내는 경우, 규칙을 적용하는 무료 API.

요약: HubSpot 폼은 "Block free email providers"(무료 이메일 서비스 차단) 체크박스 하나로 무료 이메일 주소를 거부할 수 있고, 그 뒤에는 공개된 4,768개 도메인 목록이 있습니다. 저희는 같은 목록을 무료 API(GET /email/check, POST /email/check/batch, 호출당 0크레딧), 브라우저 체커, 오픈소스 npm 패키지로 만들었습니다. 이제 폼이 적용하는 규칙을 가입 코드, CRM 정리 작업, AI 에이전트에서도 그대로 실행할 수 있습니다. 이 목록은 뻔한 경우에는 잘 맞지만, 틀리는 방식도 예측 가능합니다. 누군가를 차단하기 전에 두 가지를 모두 알아 두세요.

B2B 팀이 무료 이메일 도메인을 차단하는 이유는 하나입니다. jane@northwind.io에서 온 데모 신청은 어느 회사가 문의하는지 알려 주지만, jane1987@gmail.com에서 온 신청은 그렇지 않습니다. HubSpot은 이 기능을 폼 설정으로 제공하며, 그 뒤에 있는 목록을 문서로 공개하고 CSV로 내려받을 수 있게 해 두었습니다.

이 설정은 HubSpot 폼에만 적용됩니다. 자체 가입 플로, 파트너가 보내 준 리드 목록, 에이전트가 보강 중인 CRM 내보내기 파일은 이 설정을 거치지 않습니다. 이 글은 바로 그 빈틈을 메웁니다.

목록에 들어 있는 것

CSV(2026년 10월 10일 스냅샷)를 불러와 내용을 그룹으로 묶었습니다. UnifAPI는 HubSpot과 제휴 관계가 아닙니다. 목록은 HubSpot의 것이고, 그룹 분류는 저희가 했습니다.

그룹예시알아 둘 점
글로벌 웹메일gmail.com, googlemail.com, yahoo.com, outlook.com, hotmail.com, icloud.com, aol.com누구나 예상하는 경우.
국가별 변형yahoo.* 51개, outlook.* 33개, live.* 24개, hotmail.* 22개 도메인yahoo.com만으로 일치시키면 yahoo.co.uk와 yahoo.co.jp를 놓침.
지역 서비스web.de, gmx.de, t-online.de, orange.fr, libero.it, mail.ru, yandex.ru, qq.com, 163.com, naver.com미국 외 실제 사용량의 대부분.
ISP 메일함comcast.net, att.net, verizon.net, btinternet.com, shaw.ca, bigpond.com개인용이지만 아직 이를 쓰는 소규모 사업체도 있음.
프라이버시 중심protonmail.com, duck.com, fastmail.com, hushmail.com, posteo.de기술 쪽 구매자가 일부러 쓰는 경우가 많음.
레거시 배니티 도메인mail2*.com 도메인 1,264개와 from*.com, city-of-* 포털목록의 4분의 1이지만 실제 트래픽은 거의 없음.
일부 일회용 메일함mailinator.com, yopmail.com, maildrop.cc부분적으로만 포함.

목록의 크기는 대부분 과거의 유산입니다. mail2*.com 배니티 도메인만 해도 4,768개 중 1,264개입니다. 유지하는 데 드는 비용은 없지만, "4,768개 도메인"이라는 숫자는 오늘날의 개인 이메일을 실제보다 넓게 포괄하는 것처럼 보이게 합니다. 대부분은 처음 두 행이 차지합니다.

무료 도메인 차단이 오판하는 지점

차단은 무딘 도구입니다. 켜기 전에 다음 다섯 가지 실패 유형을 자신의 퍼널에 대입해 확인하세요.

  1. 개인 주소를 쓰는 실제 구매자. 창업자, 컨설턴트, 주말에 제품을 검토하는 사람은 Gmail을 씁니다. 일괄 차단하면 관심이 가장 높은 순간에 이들을 돌려보내게 됩니다.
  2. ISP 및 프라이버시 메일함. comcast.net을 쓰는 3인 에이전시와 protonmail.com을 쓰는 보안 엔지니어가 모두 차단됩니다. 둘 다 일반 소비자가 아닙니다.
  3. 새로운 서비스는 빠져나갑니다. proton.me, pm.me, tuta.com, hey.com은 목록에 없습니다. guerrillamail.com도 없으므로 일회용 이메일 목록이라고 보기도 어렵습니다.
  4. "비즈니스"가 "전달 가능"을 뜻하지는 않습니다. 목록에 없는 도메인도 오타, 파킹된 도메인, 반송되는 메일함일 수 있습니다. 여기서는 MX 레코드를 확인하거나 메일 서버와 통신하지 않습니다.
  5. 하위 도메인은 일치 대상이 아닙니다. 규칙은 정확히 일치할 때만 적용됩니다. berlin.de는 목록에 있지만 senate.berlin.de는 무료로 취급되지 않습니다. 회사와 정부 기관의 하위 도메인에는 올바른 기본값이지만, mail.yahoo.com 같은 별칭에는 별도 항목이 필요하다는 뜻이기도 합니다.

대부분의 B2B 팀에 맞는 방식은 차단 대신 라우팅입니다. 무료 도메인으로 가입한 사람은 셀프서비스나 리드 육성 경로로 보내고, 회사명을 물어본 뒤, 영업 후속 연락은 비즈니스 도메인에만 집중하세요. 역할 메일함(info@, sales@, support@)에도 별도 경로가 필요합니다. 비즈니스 주소이긴 하지만 특정 담당자가 읽는 메일함이 아니기 때문입니다.

같은 규칙을 적용하는 네 가지 방법

위치사용참고
폼 또는 가입 핸들러GET /email/check주소 하나, 판정 결과 반환
리드 목록 또는 CRM 내보내기POST /email/check/batch호출당 최대 1,000개 주소, 입력 순서 유지
회사 도메인 열GET /email/domains/{domain}도메인, 주소, URL 모두 허용
자체 코드 또는 웨어하우스GET /email/free-domains 또는 npm 패키지목록을 동기화해 오프라인으로 실행

네 엔드포인트 모두 무료입니다. 표준 billing 블록에 credits_charged: 0을 담아 반환하며, 잔액이 0인 워크스페이스도 호출할 수 있습니다. 네트워크 조회 없이 실행되므로 게이트웨이 자체만큼 빠르게 응답합니다.

주소 하나

curl -s "https://api.unifapi.com/email/check?email=Jane.Doe@Gmail.com" \
  -H "Authorization: Bearer $UNIFAPI_API_KEY"
{
  "request_id": "…",
  "data": {
    "input": "Jane.Doe@Gmail.com",
    "email": "jane.doe@gmail.com",
    "local_part": "jane.doe",
    "domain": "gmail.com",
    "is_valid_syntax": true,
    "is_free_provider": true,
    "is_role_account": false,
    "verdict": "free",
    "invalid_reason": null
  },
  "billing": {
    "credits_charged": 0,
    "records_charged": 0,
    "balance_remaining": 0,
    "truncated_due_to_balance": false
  }
}

분기 기준으로 쓸 필드는 verdict이며 값은 business, free, invalid 중 하나입니다. invalid일 때는 invalid_reason이 이유(missing_at_sign, invalid_local_part, invalid_domain, too_long)를 알려 주므로, "유효하지 않은 이메일"이라는 메시지 대신 쓸모 있는 폼 오류를 보여 줄 수 있습니다.

리드 목록

const res = await fetch("https://api.unifapi.com/email/check/batch", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.UNIFAPI_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ emails: leads.map((lead) => lead.email) }),
});
const { data } = await res.json();

const business = leads.filter((_, i) => data.results[i].verdict === "business");
console.log(data.summary); // { total, business, free, invalid, role_accounts }

결과는 중복을 포함해 입력 순서대로 돌아오므로, 조회 테이블 없이 원래 행과 그대로 짝지을 수 있습니다.

자체 코드에서 오프라인으로

목록과 분류기는 의존성 없는 오픈소스 패키지 @unifapi/email-filter로도 제공됩니다.

import { checkEmail } from "@unifapi/email-filter";

if (checkEmail(form.email).verdict === "free") {
  return "업무용 이메일을 사용해 주세요.";
}

Node, 엣지 런타임, 브라우저에서 실행되며, 다른 언어에서도 쓸 수 있도록 원본 목록을 JSON과 일반 텍스트로 함께 제공합니다. 버전을 고정해 두고 목록이 바뀌면 갱신하세요. 스냅샷 날짜는 FREE_EMAIL_DOMAINS_SNAPSHOT_DATE로 내보냅니다.

코드 없이 하기

무료 이메일 도메인 체커는 같은 패키지를 브라우저에서 실행합니다. 주소나 도메인을 최대 10,000개까지 — CSV 열, Jane Doe <jane@acme.io> 같은 메일 헤더, 또는 일반 목록 그대로 — 붙여넣으면 비즈니스, 무료 이메일, 유효하지 않음으로 나누고, 역할 메일함을 표시하고, 중복을 제거한 뒤 CSV로 내보냅니다. 붙여넣은 내용은 업로드되지 않습니다.

에이전트 프롬프트로 바꾸기

MCP로 UnifAPI를 연결하면 에이전트가 배치 엔드포인트를 직접 실행할 수 있습니다.

우리 웨비나 신청자 내보내기 파일이야. UnifAPI 이메일 확인으로 모든 이메일을 분류한 다음 세 가지 목록을 돌려줘. 도메인별로 묶은 비즈니스 주소, 회사명을 물어볼 수 있도록 이름을 함께 적은 무료 이메일 주소, 이유를 적은 유효하지 않은 행. 역할 메일함은 따로 표시하고, 아무것도 발송하지 마.

확인에는 비용이 들지 않으므로, 에이전트는 보강에 크레딧을 쓰기 전에 모든 목록에 이 확인을 먼저 실행할 수 있습니다. LinkedIn 회사 분석기와 함께 쓰면 비즈니스 도메인 뒤에 있는 회사의 규모를 가늠할 수 있습니다.

다음에 읽을 것

무료 이메일 도메인 체커 - 목록을 붙여넣고 비즈니스 이메일과 개인 이메일을 무료로 나누세요.

이메일 필터 API - 무료 엔드포인트 4개와 파라미터, 응답 스키마.

GitHub의 @unifapi/email-filter - 오픈소스 패키지와 원본 목록.