Skip to content

Instantly share code, notes, and snippets.

@HeroicEric
Created October 12, 2011 18:46
Show Gist options
  • Save HeroicEric/1282143 to your computer and use it in GitHub Desktop.
Save HeroicEric/1282143 to your computer and use it in GitHub Desktop.
require 'net/telnet'
# Returns the highest priority MX record server for a domain or nil.
#
# get_mail_server('mydomain.com') # => 'smtp.mydomain.com'
def get_mail_server(domain)
require 'resolv'
mx = nil
Resolv::DNS.open do |dns|
mail_servers = dns.getresources(domain, Resolv::DNS::Resource::IN::MX)
return nil unless mail_servers and not mail_servers.empty?
highest_priority = mail_servers.first
mail_servers.each do |server|
highest_priority = server if server.preference < highest_priority.preference
end
mx = highest_priority.exchange.to_s
end
return mx
end
@tn = Net::Telnet::new(
"Host" => get_mail_server("reddit.com"),
"Port" => 25
)
@tn.cmd('HELO hi') do |c|
print c
end
@tn.close
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment