Class: Harbor::MailServers::SmtpServer

Inherits:
Abstract
  • Object
show all
Defined in:
lib/harbor/mail_servers/smtp.rb

Instance Method Summary collapse

Constructor Details

#initialize(config = {}) ⇒ SmtpServer

Returns a new instance of SmtpServer.



6
7
8
9
10
11
12
# File 'lib/harbor/mail_servers/smtp.rb', line 6

def initialize(config = {})
  @config = {}
  raise ArgumentError("You must provide the :address to your SMTP server in the SmtpServer config.") unless config.has_key?(:address)

  @config[:address] = config[:address]
  @config[:port] = config.fetch(:port, 25)
end

Instance Method Details

#deliver(message_or_messages) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/harbor/mail_servers/smtp.rb', line 14

def deliver(message_or_messages)        
  messages = Array === message_or_messages ? message_or_messages : [message_or_messages]

  Net::SMTP.start(@config[:address], @config[:port]) do |smtp|
    messages.each do |message|
      smtp.send_message(message.to_s, message.from, message.to)
    end
  end
end