Почтовый сервер обмена часто находится в другом домене, чем адрес электронной почты, поэтому вам придется искать записи MX, используя DNS-сервер, чтобы получить эту информацию:
require 'resolv'
def mx_host_of_domain(domain)
mx = nil
Resolv::DNS.open do |dns|
servers = dns.getresources(domain, Resolv::DNS::Resource::IN::MX)
if servers && !servers.empty?
mx = servers.sort_by(&:preference).first.exchange.to_s
end
end
mx
end
email = 'stackoverflow' + '@' + 'larshaugseth.com'
mxhost = mx_host_of_domain email.split('@').last
# => in1.smtp.messagingengine.com
url = "http://www.#{mxhost.split('.').last(2).join('.')}/"
# => http://www.messagingengine.com/
Обратите внимание, что веб-сервер по этому адресу не гарантируется. В моем случае реальный веб-адрес службы электронной почты - https://www.fastmail.fm/,, но, к счастью, адрес, сгенерированный с помощью вышеуказанного метода, направит вас туда.