mail-relayer 0.1.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 91d61c76888e98c510ebc89367ae2308c81e9a0d86deb435cab7a002a25d84ec
4
- data.tar.gz: e79c169436b9963319b16e4e8a19fc0d3814ec6c9ec143479f8ec8478bfcdf18
3
+ metadata.gz: a7000ec5bbfcc9779972081b7508bee5768abd044ccf812d39529f4745a26adb
4
+ data.tar.gz: deeca4cc2f1bb7248f0a936b93547e1f6f2bc1ea4c09138d485a03cec0dfde2c
5
5
  SHA512:
6
- metadata.gz: 3a6bc66b94878889ff49562ecc255dbc1c228bd0a55a332a4810351d66c41033858ccc398e601e5185a10ca5b2b3d05a0c448294d819521f1e5566704c5eec1f
7
- data.tar.gz: 48fe0a136889b42396f79205d3673adb8d0fb0064b8d09f85f8ffb2f0aea14137f153aa67c4193f457493a58b76d521b2a713a3d93b7a5a62fb0ab6881e79c71
6
+ metadata.gz: 1537b9b92e2a48cce91677b8b17355c96f8ed2ea83d858db462c32140fa3f7fff818b1077980192ea8e6c1c3e18467e2494af0a502efa56224d22ff17a9c5cba
7
+ data.tar.gz: 67f2dc3fb60869a1cbd3623b253ffddcba5f62b5ef4c4e8a3125b857d4db10229fd451aa397791b91112e22a7f2a2dab6c10542f3996636f336beb57c939a77f
@@ -1,10 +1,18 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.2.1 - Dec 20, 2019
4
+
5
+ Re-release v0.2.0 as v0.2.1.
6
+
7
+ ## v0.2.0 - Dec 19, 2019
8
+
9
+ Adds option parsing to `mail-relayer` executable.
10
+
3
11
  ## v0.1.0 - Dec 19, 2019
4
12
 
5
13
  Adds executable `mail-relayer` for CLI usage.
6
14
 
7
- ## v0.0.1 - Dec 18, 2019
15
+ ## v0.0.1 - Dec 17, 2019
8
16
 
9
17
  Initial release.
10
18
 
data/README.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  This project is an attempt to simplify relaying incoming emails, e.g. to ActionMailbox.
4
4
 
5
+ ## Usage
6
+
7
+ 1. `gem install mail-relayer`
8
+
9
+ 2. Then pipe the email content from `STDIN` to `mail-relayer` executable. You need to specify the target URL and password (HTTP Basic Auth) either via command line arguments or via environment variables.
10
+
11
+ 3. Profit
12
+
13
+ ### Configuration
14
+
15
+ - target URL: `--url` or `MAIL_RELAYER_URL`
16
+ - ingress username: `--ingress-username` or `MAIL_RELAYER_INGRESS_USERNAME` (optional, default: `mail_relayer`)
17
+ - ingress password: `--ingress-password` or `MAIL_RELAYER_INGRESS_PASSWORD`
18
+
5
19
  ## Development
6
20
 
7
21
  1. Install ruby - see `.ruby-version`
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.1
@@ -2,19 +2,39 @@
2
2
 
3
3
  # frozen_string_literal: true
4
4
 
5
- require "mail-relayer"
5
+ require "optparse"
6
6
 
7
- # postfix implementation
8
- url, password = ENV.values_at("URL", "INGRESS_PASSWORD")
7
+ require "mail_relayer"
9
8
 
10
- unless url && password
11
- print "4.3.5 URL and INGRESS_PASSWORD are required"
9
+ options = {
10
+ url: ENV["MAIL_RELAYER_URL"],
11
+ username: ENV["MAIL_RELAYER_INGRESS_USERNAME"],
12
+ password: ENV["MAIL_RELAYER_INGRESS_PASSWORD"]
13
+ }
14
+
15
+ OptionParser.new do |opts|
16
+ opts.on("--url URL") do |url|
17
+ options[:url] = url
18
+ end
19
+ opts.on("--ingress-username INGRESS_USERNAME") do |user|
20
+ options[:username] = user
21
+ end
22
+ opts.on("--ingress-password INGRESS_PASSWORD") do |password|
23
+ options[:password] = password
24
+ end
25
+ opts.on("-v", "--version") do
26
+ puts "mail-relayer v#{Mail::Relayer::VERSION}"
27
+ exit 0
28
+ end
29
+ end.parse!
30
+
31
+ unless options[:url] && options[:password]
32
+ puts "4.3.5 URL and INGRESS_PASSWORD are required"
12
33
  exit 1
13
34
  end
14
35
 
15
- Mail::Relayer.new(url: url, password: password)
16
- .relay(STDIN.read)
17
- .tap do |result|
18
- print "#{result.status_code} #{result.message}"
19
- exit result.success?
20
- end
36
+ relayer = Mail::Relayer.new(**options.compact)
37
+ result = relayer.relay(STDIN.read)
38
+
39
+ puts "#{result.status_code} #{result.message}"
40
+ exit result.success?
@@ -6,7 +6,7 @@ require "uri"
6
6
 
7
7
  module Mail
8
8
  class Relayer
9
- class Result < Struct.new(:status_code, :message)
9
+ class Result < Struct.new(:status_code, :message) # rubocop:disable Style/StructInheritance
10
10
  def success?
11
11
  !failure?
12
12
  end
@@ -32,7 +32,9 @@ module Mail
32
32
  attr_reader :uri, :username, :password
33
33
 
34
34
  def initialize(url:, username: "mail_relayer", password:)
35
- @uri, @username, @password = URI(url), username, password
35
+ @uri = URI(url)
36
+ @username = username
37
+ @password = password
36
38
  end
37
39
 
38
40
  def relay(source)
@@ -48,7 +50,7 @@ module Mail
48
50
  Result.new "4.4.2", "Network error relaying to ingress: #{error.message}"
49
51
  rescue Timeout::Error
50
52
  Result.new "4.4.2", "Timed out relaying to ingress"
51
- rescue => error
53
+ rescue => error # rubocop:disable Style/RescueStandardError
52
54
  Result.new "4.0.0", "Error relaying to ingress: #{error.message}"
53
55
  end
54
56
 
@@ -56,9 +58,9 @@ module Mail
56
58
 
57
59
  def post(source)
58
60
  client.post uri, source,
59
- "Content-Type" => CONTENT_TYPE,
60
- "User-Agent" => USER_AGENT,
61
- "Authorization" => "Basic #{Base64.strict_encode64(username + ":" + password)}"
61
+ "Content-Type" => CONTENT_TYPE,
62
+ "User-Agent" => USER_AGENT,
63
+ "Authorization" => "Basic #{Base64.strict_encode64(username + ':' + password)}"
62
64
  end
63
65
 
64
66
  def client
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mail-relayer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Axel Gustav
@@ -14,16 +14,16 @@ dependencies:
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1'
19
+ version: '13.0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1'
26
+ version: '13.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rubocop
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -78,9 +78,9 @@ files:
78
78
  - README.md
79
79
  - VERSION
80
80
  - bin/mail-relayer
81
- - lib/mail-relayer.rb
82
81
  - lib/mail/relayer.rb
83
- homepage: https://rubygems.org/gems/mail-relayer
82
+ - lib/mail_relayer.rb
83
+ homepage: https://gitlab.com/axelthegerman/mail-relayer
84
84
  licenses:
85
85
  - MIT
86
86
  metadata: {}