konsierge-smtp-mailer 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 681e154f57f6672e682a4139cba96dfc687bcba4749feaf055f6d1ab70629c66
4
+ data.tar.gz: b45731f062b8bade99dbbb02476ab4bc29f7044fd5e45c5319dec8fd431e1d12
5
+ SHA512:
6
+ metadata.gz: 5e65eb407f47dc44e8f4b53619a5b06d7ac4711aa67e251f1b760a36a118aa40e38cf54fdd8c3afaa23bd83baae6b113f83bfa667af0440fbe023736dd1ce046
7
+ data.tar.gz: 4222b5cf8bc2d91ae4eda146eab998d4d050e05581f9d3543e683cc1ae2cefbea46e15183e3071ba471adbd2ddeff7e312004e6bcb7ba3b929d24c0d469a4759
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ /.idea/
data/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ ## [0.1.0] - 2021-11-01
2
+
3
+ - Initial release
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in konsierge_smtp_mailer.gemspec
6
+ gemspec
7
+
8
+ gem "rake", "~> 13.0"
data/Gemfile.lock ADDED
@@ -0,0 +1,98 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ konsierge-smtp-mailer (0.1.0)
5
+ actionmailer
6
+ rest-client
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ actionmailer (6.1.4.1)
12
+ actionpack (= 6.1.4.1)
13
+ actionview (= 6.1.4.1)
14
+ activejob (= 6.1.4.1)
15
+ activesupport (= 6.1.4.1)
16
+ mail (~> 2.5, >= 2.5.4)
17
+ rails-dom-testing (~> 2.0)
18
+ actionpack (6.1.4.1)
19
+ actionview (= 6.1.4.1)
20
+ activesupport (= 6.1.4.1)
21
+ rack (~> 2.0, >= 2.0.9)
22
+ rack-test (>= 0.6.3)
23
+ rails-dom-testing (~> 2.0)
24
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
25
+ actionview (6.1.4.1)
26
+ activesupport (= 6.1.4.1)
27
+ builder (~> 3.1)
28
+ erubi (~> 1.4)
29
+ rails-dom-testing (~> 2.0)
30
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
31
+ activejob (6.1.4.1)
32
+ activesupport (= 6.1.4.1)
33
+ globalid (>= 0.3.6)
34
+ activesupport (6.1.4.1)
35
+ concurrent-ruby (~> 1.0, >= 1.0.2)
36
+ i18n (>= 1.6, < 2)
37
+ minitest (>= 5.1)
38
+ tzinfo (~> 2.0)
39
+ zeitwerk (~> 2.3)
40
+ builder (3.2.4)
41
+ concurrent-ruby (1.1.9)
42
+ crass (1.0.6)
43
+ domain_name (0.5.20190701)
44
+ unf (>= 0.0.5, < 1.0.0)
45
+ erubi (1.10.0)
46
+ globalid (0.5.2)
47
+ activesupport (>= 5.0)
48
+ http-accept (1.7.0)
49
+ http-cookie (1.0.4)
50
+ domain_name (~> 0.5)
51
+ i18n (1.8.10)
52
+ concurrent-ruby (~> 1.0)
53
+ loofah (2.12.0)
54
+ crass (~> 1.0.2)
55
+ nokogiri (>= 1.5.9)
56
+ mail (2.7.1)
57
+ mini_mime (>= 0.1.1)
58
+ mime-types (3.3.1)
59
+ mime-types-data (~> 3.2015)
60
+ mime-types-data (3.2021.0901)
61
+ mini_mime (1.1.2)
62
+ mini_portile2 (2.6.1)
63
+ minitest (5.14.4)
64
+ netrc (0.11.0)
65
+ nokogiri (1.12.5)
66
+ mini_portile2 (~> 2.6.1)
67
+ racc (~> 1.4)
68
+ racc (1.5.2)
69
+ rack (2.2.3)
70
+ rack-test (1.1.0)
71
+ rack (>= 1.0, < 3)
72
+ rails-dom-testing (2.0.3)
73
+ activesupport (>= 4.2.0)
74
+ nokogiri (>= 1.6)
75
+ rails-html-sanitizer (1.4.2)
76
+ loofah (~> 2.3)
77
+ rake (13.0.6)
78
+ rest-client (2.1.0)
79
+ http-accept (>= 1.7.0, < 2.0)
80
+ http-cookie (>= 1.0.2, < 2.0)
81
+ mime-types (>= 1.16, < 4.0)
82
+ netrc (~> 0.8)
83
+ tzinfo (2.0.4)
84
+ concurrent-ruby (~> 1.0)
85
+ unf (0.1.4)
86
+ unf_ext
87
+ unf_ext (0.0.8)
88
+ zeitwerk (2.4.2)
89
+
90
+ PLATFORMS
91
+ ruby
92
+
93
+ DEPENDENCIES
94
+ konsierge-smtp-mailer!
95
+ rake (~> 13.0)
96
+
97
+ BUNDLED WITH
98
+ 2.1.4
data/README.md ADDED
@@ -0,0 +1,24 @@
1
+ ## Installation
2
+
3
+ Add this line to your application's Gemfile:
4
+
5
+ ```ruby
6
+ gem 'konsierge-smtp-mailer'
7
+ ```
8
+
9
+ And then execute:
10
+
11
+ $ bundle install
12
+
13
+ Or install it yourself as:
14
+
15
+ $ gem install konsierge-smtp-mailer
16
+
17
+ ## Usage
18
+ Run:
19
+
20
+ $ rails g konsierge-smtp-mailer:install
21
+
22
+ Set new mailer in environment files:
23
+
24
+ $ config.action_mailer.delivery_method = :konsierge-smtp-mailer
data/Rakefile ADDED
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ task default: %i[]
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "bundler/setup"
5
+ require "konsierge_smtp_mailer"
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ # (If you use this, don't forget to add pry to your Gemfile!)
11
+ # require "pry"
12
+ # Pry.start
13
+
14
+ require "irb"
15
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/konsierge-smtp-mailer/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "konsierge-smtp-mailer"
7
+ spec.version = KonsiergeSmtpMailer::VERSION
8
+ spec.authors = ["Digital Box Mobile"]
9
+ spec.email = ["sales@dtlbox.com"]
10
+
11
+ spec.summary = "Custom SMTP mailer."
12
+ spec.description = "Sends emails through a remote DTLBOX smtp-server by https."
13
+ spec.required_ruby_version = ">= 2.4.0"
14
+
15
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
16
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
17
+ end
18
+ spec.bindir = "exe"
19
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_dependency "actionmailer"
23
+ spec.add_dependency "rest-client"
24
+ end
@@ -0,0 +1,22 @@
1
+ require 'rails/generators'
2
+ module KonsiergeSmtpMailer
3
+ module Generators
4
+ class InstallGenerator < Rails::Generators::Base
5
+
6
+ def install
7
+ insert_into_file(
8
+ "config/initializers/konsierge-smtp-mailer.rb",
9
+ <<-TXT
10
+ # frozen_string_literal: true
11
+ ActionMailer::Base.add_delivery_method :konsierge-smtp-mailer, KonsiergeSmtpMailer::Mailer
12
+ KonsiergeSmtpMailer.configure do |config|
13
+ # config.smtp_mailer_host = "https://mailer.me"
14
+ # config.smtp_mailer_auth_key = "abcd123"
15
+ end
16
+ TXT
17
+ )
18
+ end
19
+
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KonsiergeSmtpMailer
4
+ # Configures global settings for KonsiergeSmtpMailer
5
+ # KonsiergeSmtpMailer.configure do |config|
6
+ # config.smtp_mailer_host = 'https://...'
7
+ # config.smtp_mailer_auth_key = 'asd123...'
8
+ # end
9
+ class << self
10
+ def configure
11
+ yield config
12
+ end
13
+
14
+ def config
15
+ @_config ||= Config.new
16
+ end
17
+ end
18
+
19
+ class Config
20
+ attr_accessor :smtp_mailer_host, :smtp_mailer_auth_key
21
+
22
+ def initialize
23
+ @smtp_mailer_host = nil
24
+ @smtp_mailer_auth_key = nil
25
+ end
26
+
27
+ end
28
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KonsiergeSmtpMailer
4
+ VERSION = "0.1.0"
5
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'konsierge-smtp-mailer/version'
4
+ require_relative 'konsierge-smtp-mailer/config'
5
+
6
+ module KonsiergeSmtpMailer
7
+ class ConfigError < StandardError; end
8
+ class MailerError < StandardError; end
9
+
10
+ class Mailer
11
+
12
+ def initialize(*args); end
13
+
14
+ def deliver!(mail)
15
+
16
+ if KonsiergeSmtpMailer.config.smtp_mailer_host.nil? or KonsiergeSmtpMailer.config.smtp_mailer_auth_key.nil?
17
+ raise ConfigError.new('Please provide config in initializers/konsierge-smtp-mailer.rb')
18
+ end
19
+
20
+ url = "#{KonsiergeSmtpMailer.config.smtp_mailer_host}/v1/message"
21
+ params = {
22
+ subject: mail.subject,
23
+ body: mail.body.to_s,
24
+ recipients: mail.to.as_json,
25
+ cc: mail.cc.as_json,
26
+ bcc: mail.bcc.as_json
27
+ }
28
+ RestClient.post(url, params.to_json, {
29
+ Authorization: "Basic #{KonsiergeSmtpMailer.config.smtp_mailer_auth_key}",
30
+ content_type: :json,
31
+ accept: :json
32
+ })
33
+
34
+ rescue => e
35
+ raise MailerError.new(e.message)
36
+ end
37
+ end
38
+
39
+ end
metadata ADDED
@@ -0,0 +1,83 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: konsierge-smtp-mailer
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Digital Box Mobile
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2021-11-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: actionmailer
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rest-client
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: Sends emails through a remote DTLBOX smtp-server by https.
42
+ email:
43
+ - sales@dtlbox.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - ".gitignore"
49
+ - CHANGELOG.md
50
+ - Gemfile
51
+ - Gemfile.lock
52
+ - README.md
53
+ - Rakefile
54
+ - bin/console
55
+ - bin/setup
56
+ - konsierge-smtp-mailer.gemspec
57
+ - lib/generators/konsierge-smtp-mailer/install_generator.rb
58
+ - lib/konsierge-smtp-mailer.rb
59
+ - lib/konsierge-smtp-mailer/config.rb
60
+ - lib/konsierge-smtp-mailer/version.rb
61
+ homepage:
62
+ licenses: []
63
+ metadata: {}
64
+ post_install_message:
65
+ rdoc_options: []
66
+ require_paths:
67
+ - lib
68
+ required_ruby_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 2.4.0
73
+ required_rubygems_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ requirements: []
79
+ rubygems_version: 3.1.6
80
+ signing_key:
81
+ specification_version: 4
82
+ summary: Custom SMTP mailer.
83
+ test_files: []