能否通过代理连接SMTP服务器以实现邮箱验证?
通过代理连接SMTP服务器验证邮箱地址的解决方案
HTTP代理确实无法直接处理原始TCP连接,但SOCKS代理(SOCKS4/SOCKS5)支持转发任意TCP流量,包括SMTP这类基于TCP的协议,所以你需要换用SOCKS代理相关的库,而非
http-proxy-agent。推荐使用
socks-proxy-agent库实现代理连接SMTP,步骤如下:
- 安装依赖:
npm install socks-proxy-agent
- 修改你的连接代码:
const { SocksProxyAgent } = require('socks-proxy-agent'); const net = require('net'); // 替换为你的SOCKS代理地址,带认证的格式为:socks://user:pass@host:port const proxyAgent = new SocksProxyAgent('socks://your-proxy-host:proxy-port'); // 通过代理建立SMTP连接 const client = net.createConnection({ host: mxServer, port: 25, createConnection: (options, callback) => { proxyAgent.createConnection(options, callback); } }, () => { client.write("HELO your-valid-domain.com\r\n"); client.write("MAIL FROM:<your-sender-email@domain.com>\r\n"); client.write(`RCPT TO:<${email}>\r\n`); });
- 额外提示:
- 确认你的SOCKS代理允许转发25端口的流量,部分代理会限制常用邮件端口
- 如果25端口被目标服务器或网络封禁,可尝试SMTP加密端口465(SSL)或587(STARTTLS)
- HELO参数建议用真实域名,避免被SMTP服务器判定为垃圾邮件来源
内容的提问来源于stack exchange,提问作者Defaced.Face
相关产品推荐
相关产品推荐

