module MailAddressVerifier
Constants
- VERSION
Public Class Methods
get_domain(mail_address)
click to toggle source
Your code goes hereā¦
# File lib/mail_address_verifier.rb, line 8 def MailAddressVerifier.get_domain(mail_address) if mail_address =~ /^[^@]+@(.+)$/ domain = $1 else raise "Invalid mail address format." end end
get_mx(domain)
click to toggle source
# File lib/mail_address_verifier.rb, line 16 def MailAddressVerifier.get_mx(domain) Resolv::DNS.new.getresources(domain, Resolv::DNS::Resource::IN::MX)\ .sort_by {|r| r.preference}\ .map {|r| r.exchange.to_s} end
verify_by_domain(mail_address)
click to toggle source
# File lib/mail_address_verifier.rb, line 37 def MailAddressVerifier.verify_by_domain(mail_address) result = false begin mx = get_mx(get_domain(mail_address)) unless mx.empty? result = true end rescue result = false end result end
verify_by_smtp(mail_address, myhost, myaddress)
click to toggle source
# File lib/mail_address_verifier.rb, line 22 def MailAddressVerifier.verify_by_smtp(mail_address, myhost, myaddress) mx = get_mx(get_domain(mail_address)).first result = false Net::SMTP.start(mx) do |smtp| smtp.helo myhost smtp.mailfrom myaddress begin smtp.rcptto mail_address result = true rescue end end result end