mail-relayer 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -1
- data/README.md +14 -0
- data/VERSION +1 -1
- data/bin/mail-relayer +31 -11
- data/lib/mail/relayer.rb +8 -6
- data/lib/{mail-relayer.rb → mail_relayer.rb} +0 -0
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7000ec5bbfcc9779972081b7508bee5768abd044ccf812d39529f4745a26adb
|
4
|
+
data.tar.gz: deeca4cc2f1bb7248f0a936b93547e1f6f2bc1ea4c09138d485a03cec0dfde2c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1537b9b92e2a48cce91677b8b17355c96f8ed2ea83d858db462c32140fa3f7fff818b1077980192ea8e6c1c3e18467e2494af0a502efa56224d22ff17a9c5cba
|
7
|
+
data.tar.gz: 67f2dc3fb60869a1cbd3623b253ffddcba5f62b5ef4c4e8a3125b857d4db10229fd451aa397791b91112e22a7f2a2dab6c10542f3996636f336beb57c939a77f
|
data/CHANGELOG.md
CHANGED
@@ -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
|
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
|
1
|
+
0.2.1
|
data/bin/mail-relayer
CHANGED
@@ -2,19 +2,39 @@
|
|
2
2
|
|
3
3
|
# frozen_string_literal: true
|
4
4
|
|
5
|
-
require "
|
5
|
+
require "optparse"
|
6
6
|
|
7
|
-
|
8
|
-
url, password = ENV.values_at("URL", "INGRESS_PASSWORD")
|
7
|
+
require "mail_relayer"
|
9
8
|
|
10
|
-
|
11
|
-
|
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(
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
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?
|
data/lib/mail/relayer.rb
CHANGED
@@ -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
|
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"
|
60
|
-
"User-Agent"
|
61
|
-
"Authorization" => "Basic #{Base64.strict_encode64(username +
|
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
|
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: '
|
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: '
|
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
|
-
|
82
|
+
- lib/mail_relayer.rb
|
83
|
+
homepage: https://gitlab.com/axelthegerman/mail-relayer
|
84
84
|
licenses:
|
85
85
|
- MIT
|
86
86
|
metadata: {}
|