class EmailCheck::EmailAddress

Public Class Methods

new(email_address) click to toggle source
# File lib/email_check/email_address.rb, line 7
def initialize(email_address)
  @email_address = email_address.downcase
  @email = Mail::Address.new(@email_address) rescue nil
end

Public Instance Methods

blacklisted_domain?() click to toggle source
# File lib/email_check/email_address.rb, line 24
def blacklisted_domain?
  EmailCheck.blacklisted_domains.each do |domain|
    return true if @email.domain.include?(domain)
  end

  false
end
blocked_username?() click to toggle source
# File lib/email_check/email_address.rb, line 36
def blocked_username?
  EmailCheck.blocked_usernames.include?(@email.local.downcase)
end
disposable?() click to toggle source
# File lib/email_check/email_address.rb, line 16
def disposable?
  EmailCheck.disposable_email_domains.include?(@email.domain)
end
domain_has_mx?() click to toggle source
# File lib/email_check/email_address.rb, line 40
def domain_has_mx?
  return false unless format_valid?
  val = false
  Resolv::DNS.open do |dns|
    val = dns.getresources(@email.domain, Resolv::DNS::Resource::IN::MX).any?
  end
  return val
end
format_valid?() click to toggle source
# File lib/email_check/email_address.rb, line 12
def format_valid?
  @format_valid ||= check_format()
end
free_email_provider?() click to toggle source
# File lib/email_check/email_address.rb, line 20
def free_email_provider?
  EmailCheck.free_email_domains.include?(@email.domain)
end
whitelisted_domain?() click to toggle source
# File lib/email_check/email_address.rb, line 32
def whitelisted_domain?
  EmailCheck.whitelisted_domains.include?(@email.domain)
end

Private Instance Methods

check_format() click to toggle source
# File lib/email_check/email_address.rb, line 50
def check_format
  return false unless @email

  if @email.domain && @email.address == @email_address
    domain = @email.domain
    # Must have a ., Must not have consecutive .s
    domain.include?('.') && !domain.match(/\.{2,}/)
  else
    false
  end
end