邮件smtp地址走正向代理
背景
内网程序需要调用互联网邮箱smtp地址,方案是走正向代理
尝试过走squid的http正向代理,没成功,原因是smtp.163.com:465 使用的是 SMTP over SSL/TLS(即 SMTPS),它是一个基于TCP的二进制协议。它不像 HTTP 协议那样有明确的请求头和方法(如 CONNECT、GET、POST 等),而是建立一个原始 TCP 连接后立即开始 TLS 握手。所以它需要一个能处理任意 TCP 流量的代理,而不是仅支持 HTTP 协议的代理。
引入socks5协议
SOCKS5 是一种更底层的代理协议,它支持任意 TCP 协议 ,包括 SMTP、SSH、FTP、自定义协议等 ;支持 UDP,比如 DNS 查询;支持认证,用户名密码验证等。更接近网络层,不关心上层协议内容,只是“转发”数据。
goproxy启动socks5
proxy socks -t tcp -p :1080 --daemon
#加认证
proxy socks -t tcp -p :1080 -a username:password --daemon
验证
curl --socks5 xxx.xxx.xxx.xxx:1080 http://ifconfig.me
或者
curl --socks5-hostname xxx.xxx.xxx.xxx:1080 --proxy-user username:password http://ifconfig.me
验证smtp.163.com:465
建议结合 proxychains 和 openssl
考虑到 curl 在处理 SMTP(S) 上的局限性,建议使用 proxychains 配合 openssl 客户端来进行测试
修改配置/etc/proxychains.conf
socks5 127.0.0.1 1080
验证命令:
proxychains openssl s_client -connect smtp.163.com:465
这种方法允许你通过 SOCKS5 代理直接与 smtp.163.com:465 建立 SSL/TLS 连接,并能进一步手动发送 SMTP 命令来验证整个流程是否正常工作。

浙公网安备 33010602011771号