konsierge-smtp-mailer 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: 681e154f57f6672e682a4139cba96dfc687bcba4749feaf055f6d1ab70629c66
4
- data.tar.gz: b45731f062b8bade99dbbb02476ab4bc29f7044fd5e45c5319dec8fd431e1d12
3
+ metadata.gz: 7d1f1c76d309b3d44d7cb5af650cfc6936667058dfc9bbf994d53de5c71bc0d9
4
+ data.tar.gz: ec753c1b89ae4801caa7d46f2314c873e86ce7ded83327dd5f03552199f0a466
5
5
  SHA512:
6
- metadata.gz: 5e65eb407f47dc44e8f4b53619a5b06d7ac4711aa67e251f1b760a36a118aa40e38cf54fdd8c3afaa23bd83baae6b113f83bfa667af0440fbe023736dd1ce046
7
- data.tar.gz: 4222b5cf8bc2d91ae4eda146eab998d4d050e05581f9d3543e683cc1ae2cefbea46e15183e3071ba471adbd2ddeff7e312004e6bcb7ba3b929d24c0d469a4759
6
+ metadata.gz: 020e169ee31391bedd1f96075d6e9b35a4259bbeb2c6ff0cd3552a0843998591ce58b65e7e5d96736b878b8c22be3d9e6f9fb57b6d84e71d63279d3e8bf90491
7
+ data.tar.gz: d5d29b572d126dfd3ce78368044c526911d4f30326323f1d78f74b192dfdf5c6015f119814e44e2f0e4ab077d351b004053331b5c66cadeb2e393ed46b8dbf54
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
- ## [0.1.0] - 2021-11-01
1
+ ## [0.2.1] - 2021-11-03
2
+ - Fix attachments
3
+
4
+ ## [0.2.0] - 2021-11-03
5
+ - Added attachments support
6
+ - Improve body decoding
7
+
8
+ ## [0.1.2] - 2021-11-02
9
+ - Generator fixes
2
10
 
11
+ ## [0.1.1] - 2021-11-02
12
+ - Added generator
13
+
14
+ ## [0.1.0] - 2021-11-01
3
15
  - Initial release
data/README.md CHANGED
@@ -17,8 +17,14 @@ Or install it yourself as:
17
17
  ## Usage
18
18
  Run:
19
19
 
20
- $ rails g konsierge-smtp-mailer:install
20
+ $ rails g konsierge_smtp_mailer:install
21
21
 
22
22
  Set new mailer in environment files:
23
23
 
24
- $ config.action_mailer.delivery_method = :konsierge-smtp-mailer
24
+ $ config.action_mailer.delivery_method = :konsierge_smtp_mailer
25
+
26
+ ## Build gem
27
+
28
+ $ gem build konsierge-smtp-mailer
29
+ $ rake build
30
+ $ GEM_HOST_API_KEY=<key> gem push pkg/konsierge-smtp-mailer-<version>.gem
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators'
4
+
5
+ module KonsiergeSmtpMailer
6
+ class InstallGenerator < ::Rails::Generators::Base
7
+ source_root File.expand_path("templates", __dir__)
8
+ desc "Installs KonsiergeSmtpMailer."
9
+
10
+ def install
11
+ template "initializer.rb", "config/initializers/konsierge-smtp-mailer.rb"
12
+ readme "README"
13
+ end
14
+
15
+ end
16
+ end
@@ -0,0 +1,18 @@
1
+ ===============================================================================
2
+
3
+ There is a setup that you need to do before you can use KonsiergeSmtpMailer.
4
+
5
+ Step 1.
6
+ Go to config/initializers/konsierge-smtp-mailer.rb and configure
7
+ smtp_mailer_host and smtp_mailer_auth_key.
8
+
9
+ Step 2.
10
+ Set new mailer in environment files:
11
+
12
+ config.action_mailer.delivery_method = :konsierge_smtp_mailer
13
+
14
+ Step 3.
15
+ That's it, that's all. Enjoy!
16
+
17
+ ===============================================================================
18
+
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ ActionMailer::Base.add_delivery_method :konsierge_smtp_mailer, KonsiergeSmtpMailer::Mailer
4
+
5
+ KonsiergeSmtpMailer.configure do |config|
6
+ # config.smtp_mailer_host = "https://mailer.me"
7
+ # config.smtp_mailer_auth_key = "abcd123"
8
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KonsiergeSmtpMailer
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.1"
5
5
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  require_relative 'konsierge-smtp-mailer/version'
4
4
  require_relative 'konsierge-smtp-mailer/config'
5
+ require 'fileutils'
5
6
 
6
7
  module KonsiergeSmtpMailer
7
8
  class ConfigError < StandardError; end
@@ -9,31 +10,50 @@ module KonsiergeSmtpMailer
9
10
 
10
11
  class Mailer
11
12
 
12
- def initialize(*args); end
13
-
14
- def deliver!(mail)
15
-
13
+ def initialize(*args)
16
14
  if KonsiergeSmtpMailer.config.smtp_mailer_host.nil? or KonsiergeSmtpMailer.config.smtp_mailer_auth_key.nil?
17
15
  raise ConfigError.new('Please provide config in initializers/konsierge-smtp-mailer.rb')
18
16
  end
17
+ @temp_dir = "./tmp/konsierge-smtp-mailer/#{SecureRandom.uuid}/"
18
+ @url = "#{KonsiergeSmtpMailer.config.smtp_mailer_host}/v1/message"
19
+ end
20
+
21
+ def deliver!(mail)
19
22
 
20
- url = "#{KonsiergeSmtpMailer.config.smtp_mailer_host}/v1/message"
21
23
  params = {
22
24
  subject: mail.subject,
23
- body: mail.body.to_s,
25
+ body: '',
24
26
  recipients: mail.to.as_json,
25
27
  cc: mail.cc.as_json,
26
- bcc: mail.bcc.as_json
28
+ bcc: mail.bcc.as_json,
29
+ attachments: []
27
30
  }
28
- RestClient.post(url, params.to_json, {
31
+
32
+ if mail.text_part.present?
33
+ params[:body] = mail.text_part.decode_body
34
+ elsif mail.html_part.present?
35
+ params[:body] = mail.html_part.decode_body
36
+ end
37
+
38
+ if mail.attachments.present?
39
+ FileUtils.mkdir_p @temp_dir unless File.exist? @temp_dir
40
+ mail.attachments.each do |attachment|
41
+ tmp_path = "#{@temp_dir}#{attachment.filename}"
42
+ File.open(tmp_path, 'wb') { |f| f.write(attachment.read) }
43
+ params[:attachments] << File.open(tmp_path, 'rb')
44
+ end
45
+ end
46
+
47
+ RestClient.post(@url, params, {
29
48
  Authorization: "Basic #{KonsiergeSmtpMailer.config.smtp_mailer_auth_key}",
30
- content_type: :json,
31
49
  accept: :json
32
50
  })
33
51
 
34
52
  rescue => e
35
53
  raise MailerError.new(e.message)
54
+ ensure
55
+ FileUtils.rm_rf(@temp_dir) if File.exist? @temp_dir
36
56
  end
37
- end
38
57
 
58
+ end
39
59
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: konsierge-smtp-mailer
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
  - Digital Box Mobile
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-11-01 00:00:00.000000000 Z
11
+ date: 2021-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionmailer
@@ -54,7 +54,9 @@ files:
54
54
  - bin/console
55
55
  - bin/setup
56
56
  - konsierge-smtp-mailer.gemspec
57
- - lib/generators/konsierge-smtp-mailer/install_generator.rb
57
+ - lib/generators/konsierge_smtp_mailer/install_generator.rb
58
+ - lib/generators/konsierge_smtp_mailer/templates/README
59
+ - lib/generators/konsierge_smtp_mailer/templates/initializer.rb
58
60
  - lib/konsierge-smtp-mailer.rb
59
61
  - lib/konsierge-smtp-mailer/config.rb
60
62
  - lib/konsierge-smtp-mailer/version.rb
@@ -1,22 +0,0 @@
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