2011-08-27 66 views

回答

1

你可以做這樣的事情:

a = "[email protected]" 
b = a.split("@").last 
=> "gmail.com" 

"http://www." + b 
=> "http://www.gmail.com" 

你可以用做這一切在同一行:

"http://www." + "[email protected]".split('@').last 

可能有更好的方法,但這是相當簡單的。

1

郵件交換服務器往往會在除電子郵件地址不同的領域,所以你將不得不使用的DNS服務器來獲得這些信息來查找MX記錄:

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/ 

注意,沒有保證Web服務器位於此地址。在我的情況下,電子郵件服務的真實網址是https://www.fastmail.fm/,但幸運的是,使用上述方法生成的網址會將您轉發到那裏。

+1

+1特別是關於這樣做缺乏有用性的評論。你爲什麼這樣做,爲什麼你假設一個電子郵件域有一個網站,反之亦然? – tripleee

相關問題