Sha256: fc0b435a4486640d16e10009aa9eb87c721133efc2048ff661dad6c6242d6b46

Contents?: true

Size: 1004 Bytes

Versions: 10

Compression:

Stored size: 1004 Bytes

Contents

require 'lib/em-proxy'

Proxy.start(:host => "0.0.0.0", :port => 2524) do |conn|
  conn.server :srv, :host => "127.0.0.1", :port => 2525

  # RCPT TO:<name@address.com>\r\n
  RCPT_CMD = /RCPT TO:<(.*)?>\r\n/

  conn.on_data do |data|
    
    if rcpt = data.match(RCPT_CMD)
      if rcpt[1] != "ilya@igvita.com"
       conn.send_data "550 No such user here\n"
       data = nil
      end
    end

    data
  end
 
  conn.on_response do |backend, resp|
    resp
  end
end


# mailtrap run -p 2525 -f /tmp/mailtrap.log
# ruby examples/smtp_whitelist.rb
#
# >> require 'net/smtp'
# >> smtp = Net::SMTP.start("localhost", 2524)
# >> smtp.send_message "Hello World!", "ilya@aiderss.com", "ilya@igvita.com"
# => #<Net::SMTP::Response:0xb7dcff5c @status="250", @string="250 OK\n">
# >> smtp.finish
# => #<Net::SMTP::Response:0xb7dcc8d4 @status="221", @string="221 Seeya\n">
#
# >> smtp.send_message "Hello World!", "ilya@aiderss.com", "missing_user@igvita.com"
# => Net::SMTPFatalError: 550 No such user here
#

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
em-proxy-0.1.9 examples/smtp_whitelist.rb
fizx-em-proxy-0.1.1 examples/smtp_whitelist.rb
em-proxy-0.1.8 examples/smtp_whitelist.rb
em-proxy-0.1.7 examples/smtp_whitelist.rb
em-proxy-0.1.6 examples/smtp_whitelist.rb
em-proxy-0.1.5 examples/smtp_whitelist.rb
em-proxy-0.1.4 examples/smtp_whitelist.rb
em-proxy-0.1.3 examples/smtp_whitelist.rb
em-proxy-0.1.2 examples/smtp_whitelist.rb
em-proxy-0.1.1 examples/smtp_whitelist.rb