邮件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 命令来验证整个流程是否正常工作。

posted @ 2025-05-29 18:09  海yo  阅读(138)  评论(0)    收藏  举报