Class: MultiMail::Receiver::Simple
- Inherits:
-
Object
- Object
- MultiMail::Receiver::Simple
- Includes:
- Base
- Defined in:
- lib/multi_mail/simple/receiver.rb
Overview
A simple incoming email receiver.
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Simple
constructor
Initializes a simple incoming email receiver.
- #signature(params) ⇒ Object
-
#transform(params) ⇒ Array<Mail::Message>
Expects a raw email message parsable by the Mail gem.
-
#valid?(params) ⇒ Boolean
Returns whether a request is authentic.
Methods included from Base
Constructor Details
#initialize(options = {}) ⇒ Simple
Initializes a simple incoming email receiver.
13 14 15 16 |
# File 'lib/multi_mail/simple/receiver.rb', line 13 def initialize( = {}) super @secret = [:secret] end |
Instance Method Details
#signature(params) ⇒ Object
39 40 41 42 |
# File 'lib/multi_mail/simple/receiver.rb', line 39 def signature(params) data = "#{params.fetch('timestamp')}#{params.fetch('token')}" OpenSSL::HMAC.hexdigest('sha256', @secret, data) end |
#transform(params) ⇒ Array<Mail::Message>
Expects a raw email message parsable by the Mail gem.
35 36 37 |
# File 'lib/multi_mail/simple/receiver.rb', line 35 def transform(params) [Mail.new(params)] end |
#valid?(params) ⇒ Boolean
Returns whether a request is authentic.
23 24 25 26 27 28 29 |
# File 'lib/multi_mail/simple/receiver.rb', line 23 def valid?(params) if @secret params.fetch('signature') == signature(params) else super end end |