Class: Tegawa::MailServer

Inherits:
MidiSmtpServer::Smtpd
  • Object
show all
Defined in:
lib/tegawa/mail_server.rb

Instance Method Summary collapse

Constructor Details

#initialize(addr, port) ⇒ MailServer

Returns a new instance of MailServer.



8
9
10
11
12
# File 'lib/tegawa/mail_server.rb', line 8

def initialize(addr, port)
  super(port, addr)
  @queue = Tegawa.queue
  @logger = Tegawa.logger
end

Instance Method Details

#on_message_data_event(ctx) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/tegawa/mail_server.rb', line 18

def on_message_data_event(ctx)
  # Output for debug
  @logger.debug("mail reveived at: [#{ctx[:server][:local_ip]}:#{ctx[:server][:local_port]}] from: [#{ctx[:envelope][:from]}] for recipient(s): [#{ctx[:envelope][:to]}]...")

  # Just decode message once to make sure, that this message ist readable
  @mail = Mail.read_from_string(ctx[:message][:data])

  # handle incoming mail, just show the message source
  @logger.info "You've got mail! From: #{@mail.from}"

  message = "Mail-From: #{@mail.from}\r\nSubject: #{@mail.subject}\r\n\r\n#{@mail.body}"
  @queue << message
end

#startObject



14
15
16
# File 'lib/tegawa/mail_server.rb', line 14

def start
  super
end