Sha256: c0cadfd2cf01ebab58895bb59f10772a380205ffc04e143892653139d1faff5d
Contents?: true
Size: 1.19 KB
Versions: 4
Compression:
Stored size: 1.19 KB
Contents
require 'resolv' require 'stringio' require 'net/smtp' module Net class SMTP def socket @socket end def bind_at(ip) @bind_at = ip end def tcp_socket(address, port) in_addr = Socket.pack_sockaddr_in(0, @bind_at) if @bind_at out_addr = Socket.pack_sockaddr_in(port, address) s = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0) s.bind(in_addr) if @bind_at s.connect(out_addr) s end end end module Rhcf module Utils module Email def self.get_mxs(domain) Resolv::DNS.open do |dns| dns.getresources(domain, Resolv::DNS::Resource::IN::MX).collect{|x| x.exchange.to_s} end end def self.transmit(from, to, body, bind_interface, ehlo = 'localhost.localdomain') domain = to.split('@').last chat = StringIO.new mx = get_mxs(domain).sample smtp = Net::SMTP.new(mx, 25) smtp.bind_at bind_interface result = smtp.start(ehlo) do |smtp| smtp.socket.debug_output = chat smtp.send_message body, from, to end {status: result.status, string: result.string, chat: chat.string} end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
rhcf-utils-0.0.5 | lib/rhcf/utils/email.rb |
rhcf-utils-0.0.4 | lib/rhcf/utils/email.rb |
rhcf-utils-0.0.3 | lib/rhcf/utils/email.rb |
rhcf-utils-0.0.2 | lib/rhcf/utils/email.rb |