Module: ValidateEmail

Defined in:
lib/ValidateEmail.rb

Class Method Summary collapse

Class Method Details

.validate(email, validate_mx = false) ⇒ Object



4
5
6
7
8
9
10
# File 'lib/ValidateEmail.rb', line 4

def self.validate(email, validate_mx = false)
  email_pattern = (email =~ /^[a-zA-Z][\w\.\+-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/)
  is_valid = email_pattern.nil? ? false : true
  is_valid = validate_mx_record(email) if is_valid && validate_mx

  return is_valid
end

.validate_mx_record(email) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/ValidateEmail.rb', line 12

def self.validate_mx_record(email)
  domain = email.match(/\@(.+)/)[1]
  Resolv::DNS.open do |dns|
    @mx = dns.getresources(domain, Resolv::DNS::Resource::IN::MX)
  end
  @mx.size > 0 ? true : false
end