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 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,9 @@
1
+ module GettiveMailer
2
+ class Configuration
3
+ attr_accessor :api_key, :endpoint
4
+
5
+ def initialize
6
+ @endpoint = ENV.fetch("GETTIVE_MAILER_ENDPOINT", "https://api.mailer.gettive.com")
7
+ end
8
+ end
9
+ end
@@ -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,10 @@
1
+ module GettiveMailer
2
+ class Railtie < Rails::Railtie
3
+ initializer "gettive_mailer.action_mailer" do
4
+ ActionMailer::Base.add_delivery_method(
5
+ :gettive_mailer,
6
+ GettiveMailer::DeliveryMethod
7
+ )
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,3 @@
1
+ module GettiveMailer
2
+ VERSION = "0.1.0"
3
+ 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: []