Ruby 如何使用Net::SMTP over SOCKS代理?

Ruby 如何使用Net::SMTP over SOCKS代理?,ruby,networking,smtp,socks,Ruby,Networking,Smtp,Socks,我在Ruby 2.6中这样做: require 'net/smtp' Net::SMTP.start('smtp.gmail.com', 457).do |smtp| smtp.helo('gmail.com') end 现在,我想做完全相同的事情,但是通过SOCKS4/5代理。我在文档中找不到任何内容。查看它的源代码时,它似乎没有对SOCKS代理的内置支持 有几个想法: 你的Ruby解释器是用SOCKS支持构建的吗?如果是,那么你就可以使用。创建Net::SMTP的子类并重写以使用soc

我在Ruby 2.6中这样做:

require 'net/smtp'
Net::SMTP.start('smtp.gmail.com', 457).do |smtp|
  smtp.helo('gmail.com')
end
现在,我想做完全相同的事情,但是通过SOCKS4/5代理。我在文档中找不到任何内容。

查看它的源代码时,它似乎没有对SOCKS代理的内置支持

有几个想法:

  • 你的Ruby解释器是用SOCKS支持构建的吗?如果是,那么你就可以使用。创建Net::SMTP的子类并重写以使用
    socksocket
    而不是
    TCPSocket
  • 使用gem(尽管它看起来很旧)
  • 在纯Ruby中重新实现
    SOCKSSocket
    (通过SOCKS4连接并不太困难,SOCKS5稍微复杂一些,请参阅以供参考)或找到现有的实现(尽管我还没有找到)