使用不同的公共IP通过SMTP发送电子邮件

时间:2017-04-07 23:12:50

标签: ruby smtp

假设我的服务器有2个公共IP,Ruby使用第一个IP然后使用第二个IP通过SMTP协议发送电子邮件的步骤是什么?

我知道指定local_host选项的TCPSocket选项,但我找不到类似于SMTP的任何内容,我找不到接受已构建套接字的构造函数的任何选项。

1 个答案:

答案 0 :(得分:1)

您可以在Ruby标准库的Net :: SMTP类的源代码中看到,该类具有创建新套接字的私有tcp_socket方法:

def tcp_socket(address, port)
  TCPSocket.open address, port
end

您可以继承Net::SMTP并覆盖该方法以返回其他内容,或者只是在需要快速和肮脏的东西时对其进行修补。

请注意,直接设置@socket instance_variable(使用instance_variable_set将起作用;尽管有这个名称,但这个实例变量并不包含普通的Socket实例,它拥有类Net::InternetMessageIO的包装器对象,它本身可能包含一个OpenSSL::SSL::Socket对象,而这个对象又包含一个真实的TCPSocket对象。