Class: Mail::Relayer
- Inherits:
-
Object
- Object
- Mail::Relayer
- Defined in:
- lib/mail/relayer.rb
Defined Under Namespace
Classes: Result
Constant Summary collapse
- VERSION =
File.read(File.("../../VERSION", __dir__)).strip
- CONTENT_TYPE =
"message/rfc822"
- USER_AGENT =
"Mail relayer v#{VERSION}"
Instance Attribute Summary collapse
-
#password ⇒ Object
readonly
Returns the value of attribute password.
-
#uri ⇒ Object
readonly
Returns the value of attribute uri.
-
#username ⇒ Object
readonly
Returns the value of attribute username.
Instance Method Summary collapse
-
#initialize(url:, username: "mail_relayer", password:) ⇒ Relayer
constructor
A new instance of Relayer.
- #relay(source) ⇒ Object
Constructor Details
#initialize(url:, username: "mail_relayer", password:) ⇒ Relayer
Returns a new instance of Relayer.
34 35 36 37 38 |
# File 'lib/mail/relayer.rb', line 34 def initialize(url:, username: "mail_relayer", password:) @uri = URI(url) @username = username @password = password end |
Instance Attribute Details
#password ⇒ Object (readonly)
Returns the value of attribute password.
32 33 34 |
# File 'lib/mail/relayer.rb', line 32 def password @password end |
#uri ⇒ Object (readonly)
Returns the value of attribute uri.
32 33 34 |
# File 'lib/mail/relayer.rb', line 32 def uri @uri end |
#username ⇒ Object (readonly)
Returns the value of attribute username.
32 33 34 |
# File 'lib/mail/relayer.rb', line 32 def username @username end |
Instance Method Details
#relay(source) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/mail/relayer.rb', line 40 def relay(source) case response = post(source) when Net::HTTPSuccess Result.new "2.0.0", "Successfully relayed message to ingress" when Net::HTTPUnauthorized Result.new "4.7.0", "Invalid credentials for ingress" else Result.new "4.0.0", "HTTP #{response.code}" end rescue IOError, SocketError, SystemCallError => error Result.new "4.4.2", "Network error relaying to ingress: #{error.}" rescue Timeout::Error Result.new "4.4.2", "Timed out relaying to ingress" rescue => error # rubocop:disable Style/RescueStandardError Result.new "4.0.0", "Error relaying to ingress: #{error.}" end |