#!/usr/bin/env ruby
# frozen_string_literal: true
require 'resolv'
require 'net/smtp'
def mx_records(domain)
Resolv::DNS.open do |dns|
dns.getresources(domain, Resolv::DNS::Resource::IN::MX)
end
end
def mailbox_exist?(email)
domain = email.split('@').last
mx = mx_records(domain).first
return false unless mx
Net::SMTP.start(mx.exchange.to_s, 25) do |smtp|
smtp.mailfrom 'info@example.com' # replace with your email address or something more realistic
smtp.rcptto email
end
true
rescue Net::SMTPFatalError, Net::SMTPSyntaxError
false
end
if ARGV.length != 1
puts "Usage: ruby #{__FILE__} <email_address>"
exit 1
end
email = ARGV[0]
if mailbox_exist?(email)
puts "Mailbox exists."
else
puts "Mailbox doesn't exist or couldn't be verified."
end