MIX-Basic
8,000 IP · 500–900 线程
每月 $50 起
一次性列表清洗加收件箱检查。地址几万个、每月跑一轮,就选它。
发送前要清洗列表,还要看邮件落在哪里。两件事都卡在同一个 IP 上:邮件服务器会限制来自同一地址的频繁访问。最多 25,000 个 IP 的 MIX 代理池把验证分散到几千个地址上,所以百万级列表的验证能开几千个线程。1 小时测试 $1。

选择套餐,拖动时长和线程数。一个线程就是此刻打开的一个 SMTP 连接:2,100 线程的验证器同时检查 2,100 个地址。滑块就是为这个场景设定的。
MIX-Basic 适合十万地址以内的一次性列表清洗,以及在两三个邮箱上做收件箱检查。8,000 个地址足以让 SMTP 检查不撞上邮件服务器的限制,网页验证器上的验证码也不碍事。500 线程,一周以上时长可按 50 为一档加购。
MIX-Business 面向地址验证服务和日常列表工作:每轮一百万地址,跨多个域名和地区的送达率检查。16,000 个地址维持在 Gmail 和 Outlook 不返回临时失败的频率上。起步 1,000 线程,可加到 1,400。
MIX-Elite 为工业级验证和送达率监控而生:几千万地址的列表、从不同国家做收件箱检查、按计划运行。最大的代理池,25,000 个地址,线程可到 9,900。SMTP 检查需要很多线程,所以组件默认打开在推荐起点 2,100。
一个线程即一个并发连接。线程越多,同样时间内完成得越多。
1个月 $50线程无额外费用
比按天省 $250一个线程即一个并发连接。线程越多,同样时间内完成得越多。
1个月 $100线程无额外费用
比按天省 $350一个线程即一个并发连接。线程越多,同样时间内完成得越多。
1个月 $150+ 线程 $60
比按天省 $630白名单直接对服务器本身放行,验证器没有地方输入用户名和密码。名单最多十个地址。
返回的是文本:地址和端口,每行一个代理。同一链接结尾加 .csv 会多出一个 uptime 列,方便挑出最稳定的地址。
MailList Verify、BriteVerify 和自写的验证器都能通过链接加载列表并自行刷新。用 Python 自己写脚本,可以从下面的示例开始。
Basic 500,Business 1,000,Elite 不加购 1,500,加购后最多 9,900。一个 SMTP 连接走一个端口,大列表上线程决定跑完的时间。
验证器与域名的邮件服务器打招呼,用 RCPT 命令询问该地址,返回 250 就说明邮箱存在。这个过程不发邮件,也不消耗域名信誉。
用 Python 验证列表的方法如下。脚本从 emails.txt 读取地址,为每个找到域名的 MX,通过列表中随机的代理打开 SMTP,再按 RCPT 的回应把 valid、invalid 或 unknown 写进 checked.csv。把 PROXY_LIST_URL_FROM_DASHBOARD 换成控制台里的链接。
# pip install requests dnspython PySocks
import random, smtplib, socks, requests
import dns.resolver
from concurrent.futures import ThreadPoolExecutor
PROXY_LIST_URL = "PROXY_LIST_URL_FROM_DASHBOARD"
THREADS = 2100
HELO_DOMAIN = "yourdomain.com"
FROM_ADDR = "check@yourdomain.com"
proxies = [line.strip() for line in requests.get(PROXY_LIST_URL, timeout=15).text.splitlines() if ":" in line]
class ProxySMTP(smtplib.SMTP):
def __init__(self, proxy, host, port=25, timeout=15):
self.proxy = proxy
super().__init__(host, port, timeout=timeout)
def _get_socket(self, host, port, timeout):
proxy_host, proxy_port = self.proxy.split(":")
sock = socks.socksocket()
sock.set_proxy(socks.SOCKS5, proxy_host, int(proxy_port))
sock.settimeout(timeout)
sock.connect((host, port))
return sock
def mx(domain):
records = dns.resolver.resolve(domain, "MX")
return str(min(records, key=lambda r: r.preference).exchange).rstrip(".")
def check(email):
try:
smtp = ProxySMTP(random.choice(proxies), mx(email.split("@")[1]))
smtp.ehlo(HELO_DOMAIN)
smtp.mail(FROM_ADDR)
code, _ = smtp.rcpt(email)
smtp.quit()
return email, "valid" if code == 250 else "invalid"
except Exception:
return email, "unknown"
emails = [line.strip() for line in open("emails.txt") if "@" in line]
with ThreadPoolExecutor(THREADS) as pool, open("checked.csv", "w") as out:
for email, status in pool.map(check, emails):
out.write(f"{email};{status}\n")
print(email, status)
8,000 IP · 500–900 线程
每月 $50 起
一次性列表清洗加收件箱检查。地址几万个、每月跑一轮,就选它。
16,000 IP · 1,000–1,400 线程
每月 $100 起
面向服务商和日常工作的套餐:每轮一百万地址,按域名做送达率检查。
25,000 IP · 1,500–9,900 线程
每月 $150 起
面向工业级验证的套餐:几千万地址、线程到 9,900、按计划运行。
import csv, io, requests
CSV_URL = "PROXY_LIST_URL_FROM_DASHBOARD.csv"
TAKE = 2100
OUT_FILE = "proxies_stable.txt"
text = requests.get(CSV_URL, timeout=15).text
rows = list(csv.DictReader(io.StringIO(text), delimiter=";"))
rows.sort(key=lambda r: int(r["uptime"]), reverse=True)
picked = [f"{r['ip']}:{r['port']}" for r in rows[:TAKE]]
with open(OUT_FILE, "w") as f:
f.write("\n".join(picked) + "\n")
print(f"{len(picked)} proxies saved to {OUT_FILE}")