Sha256: c303eca78e84007dc781c371d11a408956a74cecd4f89dc6413a0dff60494b69
Contents?: true
Size: 747 Bytes
Versions: 2
Compression:
Stored size: 747 Bytes
Contents
# frozen_string_literal: true module Truemail module Validate class Mx < Truemail::Validate::Base require 'resolv' ERROR = 'mx records not found' def run return false unless Truemail::Validate::Regex.check(result) result.domain = result.email[Truemail::RegexConstant::REGEX_EMAIL_PATTERN, 3] return true if success(!result.mail_servers.push(*mx_records).empty?) add_error(Truemail::Validate::Mx::ERROR) false end private def mx_records mx_records = Resolv::DNS.open { |dns| dns.getresources(result.domain, Resolv::DNS::Resource::IN::MX) } mx_records.sort_by(&:preference).map { |mx_record| mx_record.exchange.to_s } end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
truemail-0.1.2 | lib/truemail/validate/mx.rb |
truemail-0.1.1.3 | lib/truemail/validate/mx.rb |