如何从Ruby on Rails中的电子邮件地址获取电子邮件提供商

时间:2019-12-23 01:10:30

标签: ruby-on-rails ruby email

我需要获取电子邮件地址的提供者gmailoutlook等。

例如,xxxx@stackoverflow.com返回的是google.comgmail相同。

我需要找到一种捕获电子邮件提供者的方法,我已经阅读了一些有关电子邮件mx的内容,但是仍然无法正确获取此数据。

有人知道我如何得到它吗?

1 个答案:

答案 0 :(得分:0)

提供商应与域关联,而不是与电子邮件地址本身关联。因此,您需要在域上搜索MX记录。 Straight from the docs您可以做到:

require 'resolv'
Resolv::DNS.open do |dns|
  ress = dns.getresources "stackoverflow.com", Resolv::DNS::Resource::IN::MX
  p ress.map { |r| [r.exchange.to_s, r.preference] }
end
=>[["aspmx.l.google.com", 1], ["alt3.aspmx.l.google.com", 10], ["alt4.aspmx.l.google.com", 10], ["alt1.aspmx.l.google.com", 5], ["alt2.aspmx.l.google.com", 5]]