我正在这样做,在ruby 2.6:
require 'net/smtp'
Net::SMTP.start('smtp.gmail.com', 457).do |smtp|
smtp.helo('gmail.com')
end
现在,我想做完全一样的事情,但是在socks4/5代理上。我在文档中找不到任何东西。
查看net :: SMTP的来源,似乎没有对袜子代理的内置支持。
一些想法:
- 您的红宝石解释器是用袜子支撑而建造的吗?如果是,那么您可以使用SocksSocket类。创建一个NET :: SMTP和覆盖
tcp_socket
的子类SOCKSSocket
而不是TCPSocket
。 - 使用ruby-proxifier宝石(虽然看起来很旧(。
- 在纯红宝石中重新实现
SOCKSSocket
(通过socks4连接并不难,袜子5稍微复杂得多,请参阅此示例以获取参考(或找到现有的实现(尽管我找不到一个(。