gettive_mailer 0.1.0
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 +7 -0
- data/README.md +17 -0
- data/lib/gettive_mailer/configuration.rb +9 -0
- data/lib/gettive_mailer/delivery_method.rb +36 -0
- data/lib/gettive_mailer/railtie.rb +10 -0
- data/lib/gettive_mailer/version.rb +3 -0
- data/lib/gettive_mailer.rb +23 -0
- metadata +62 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: cf7e35a4f1df3c837879cc0c3b12a6306c1b2466cb928bf8c417a41f2da07b5f
|
|
4
|
+
data.tar.gz: 60086bbd333f1fdb3d07112a22acb2e65e88c805551900076202de31923cb506
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 6b02fc7e81407313225b7e5026031d6a2f91c4d608bc4c81fad9bbba1b836f45bb5e97a374517c671f57800b7d1ad3da0ecbc1551fb4f06b574f3af6b00fe527
|
|
7
|
+
data.tar.gz: a60c57d2e72b4cce6620f022ae53abcc2924cc24c0adbbd60b5d118260225bd29069fddce9cefcc1a9fa6fb54f1a22b61852520ef861af1f7a4d5023dfdf2875
|
data/README.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Set up
|
|
2
|
+
Add the following to your GemFile to have it installed from GitHub; `gem "gettive_mailer", git: "https://github.com/gettive/mailer.git"`, then `bundle install`
|
|
3
|
+
|
|
4
|
+
Create *gettive_mailer.rb* inside the initializers directory, and add this; it will be loaded when the server is started
|
|
5
|
+
```
|
|
6
|
+
GettiveMailer.configure do |config|
|
|
7
|
+
config.api_key = <Your API Key>
|
|
8
|
+
end
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
In your prereferred environment (Available in *config/environments/<env name>*), set *gettive_mailer*, as your chosen adaptor for sending emails
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
config.action_mailer.delivery_method = :gettive_mailer
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
You should now be good to go
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
require "base64"
|
|
2
|
+
|
|
3
|
+
module GettiveMailer
|
|
4
|
+
class DeliveryMethod
|
|
5
|
+
def initialize(_options = {})
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def deliver!(mail)
|
|
9
|
+
uri = URI("#{GettiveMailer.config.endpoint}/v1/emails")
|
|
10
|
+
|
|
11
|
+
response = Net::HTTP.start(
|
|
12
|
+
uri.host,
|
|
13
|
+
uri.port,
|
|
14
|
+
use_ssl: uri.scheme == "https"
|
|
15
|
+
) do |http|
|
|
16
|
+
request = Net::HTTP::Post.new(uri)
|
|
17
|
+
|
|
18
|
+
request["Authorization"] =
|
|
19
|
+
"Bearer #{GettiveMailer.config.api_key}"
|
|
20
|
+
|
|
21
|
+
request["Content-Type"] = "application/json"
|
|
22
|
+
|
|
23
|
+
request.body = {
|
|
24
|
+
raw_email: Base64.strict_encode64(mail.to_s)
|
|
25
|
+
}.to_json
|
|
26
|
+
|
|
27
|
+
http.request(request)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
return if response.code.to_i.between?(200, 299)
|
|
31
|
+
|
|
32
|
+
raise StandardError,
|
|
33
|
+
"GettiveMailer delivery failed: #{response.code} #{response.body}"
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
require "net/http"
|
|
2
|
+
require "json"
|
|
3
|
+
|
|
4
|
+
require_relative "gettive_mailer/version"
|
|
5
|
+
require_relative "gettive_mailer/configuration"
|
|
6
|
+
require_relative "gettive_mailer/delivery_method"
|
|
7
|
+
|
|
8
|
+
module GettiveMailer
|
|
9
|
+
class << self
|
|
10
|
+
attr_accessor :configuration
|
|
11
|
+
|
|
12
|
+
def configure
|
|
13
|
+
self.configuration ||= Configuration.new
|
|
14
|
+
yield(configuration)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def config
|
|
18
|
+
self.configuration ||= Configuration.new
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
require_relative "gettive_mailer/railtie" if defined?(Rails)
|
metadata
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: gettive_mailer
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Vincent Makokha
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2026-07-16 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: rails
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '6.1'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '6.1'
|
|
27
|
+
description: Send Rails emails through the GettiveMailer API, powered by AWS SES.
|
|
28
|
+
email: makokhavomondi@gmail.com
|
|
29
|
+
executables: []
|
|
30
|
+
extensions: []
|
|
31
|
+
extra_rdoc_files: []
|
|
32
|
+
files:
|
|
33
|
+
- README.md
|
|
34
|
+
- lib/gettive_mailer.rb
|
|
35
|
+
- lib/gettive_mailer/configuration.rb
|
|
36
|
+
- lib/gettive_mailer/delivery_method.rb
|
|
37
|
+
- lib/gettive_mailer/railtie.rb
|
|
38
|
+
- lib/gettive_mailer/version.rb
|
|
39
|
+
homepage: https://github.com/gettive/mailer
|
|
40
|
+
licenses:
|
|
41
|
+
- MIT
|
|
42
|
+
metadata: {}
|
|
43
|
+
post_install_message:
|
|
44
|
+
rdoc_options: []
|
|
45
|
+
require_paths:
|
|
46
|
+
- lib
|
|
47
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
48
|
+
requirements:
|
|
49
|
+
- - ">="
|
|
50
|
+
- !ruby/object:Gem::Version
|
|
51
|
+
version: '3.0'
|
|
52
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
53
|
+
requirements:
|
|
54
|
+
- - ">="
|
|
55
|
+
- !ruby/object:Gem::Version
|
|
56
|
+
version: '0'
|
|
57
|
+
requirements: []
|
|
58
|
+
rubygems_version: 3.5.21
|
|
59
|
+
signing_key:
|
|
60
|
+
specification_version: 4
|
|
61
|
+
summary: Action Mailer delivery adapter for GettiveMailer
|
|
62
|
+
test_files: []
|