我正在使用Ruby on Rails v3.0.9,我发现最好的方式来检索电子邮件字符串的“最后一部分”和相关的网站URL(即网站)提供电子邮件服务。)
例如,如果我有
sample_email_title@gmail.com
我想检索
gmail.com
和“转换”,以便具有以下内容:
http://www.gmail.com
我该如何实现?
答案 0 :(得分:1)
你可以这样做:
a = "my_email@gmail.com"
b = a.split("@").last
=> "gmail.com"
"http://www." + b
=> "http://www.gmail.com"
您可以使用以下方式完成所有操作:
"http://www." + "my_email@gmail.com".split('@').last
可能有更好的方法,但这很简单。
答案 1 :(得分: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/,但幸运的是,使用上述方法生成的网址将转发给您。