mailgunner 3.3.0 → 4.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 710f8d7a57375739abe0a86b8593fce280d816db9b4714e88c3d72813674314e
4
- data.tar.gz: 26dc907da5afb3955fccf1c0973d116fa7a899a87f933fea96b9f7833c908c64
3
+ metadata.gz: 68276473f93aedebee10c74ebedd1b9f31bbadb7bb71a7a808615b57ff215ce2
4
+ data.tar.gz: 49be826a127a90a4b787fe7c6cd045f4f3f1790f096f09ba97ff7234d73e3f07
5
5
  SHA512:
6
- metadata.gz: 9775c97eaa7562e235a289bb3017e7712edb0f4ac921fdd0479e0bfc34df98313721d6b77de3988c8d52f42396d043ecf2ed6f828da3c959274e401ecf0b3a1b
7
- data.tar.gz: 526a146c51827c7cdcf5d792073fd200ed0515eb576e71b4bb76146758f60bfc862fd9bf282644261fd63ac6efb0a2d39667a07ab84afe980a22e1bad6fe334b
6
+ metadata.gz: 20da5f55d67cdfe1e1c4481c270a6c9eaf4b897966c639a60b2405e8fa2424529bf241526380e371c3bc7eea70ee14fb9875fe56d4050bd48a588018b27e548f
7
+ data.tar.gz: 6dcfd8097872c7d2a17a6e45959570ecd17864efbcc14c613a51f534031577ad60d2f8f905e1127613421637ad2a7aa1b54a04abc27eb83f8e8a970f5f2c7caa
data/CHANGES.md CHANGED
@@ -1,3 +1,23 @@
1
+ # 4.0.0
2
+
3
+ * Added openssl dependency
4
+
5
+ * Changed to using #smtp_envelope_to in DeliveryMethod (#27)
6
+
7
+ * Changed required_ruby_version to >= 3.3.0
8
+
9
+ * Dropped support for mail < 2.8.0
10
+
11
+ # 3.4.0
12
+
13
+ * Added delete_unsubscribes method (#26)
14
+
15
+ * Added delete_complaints method (#26)
16
+
17
+ * Changed from cgi to uri for encoding query parameters
18
+
19
+ * Added dependencies on net/http, json, and uri gems
20
+
1
21
  # 3.3.0
2
22
 
3
23
  * Fixed compatibility with rails/actionmailer 7.1 (#24)
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012-2023 TIMCRAFT
1
+ Copyright (c) 2012-2026 TIMCRAFT
2
2
 
3
3
  This is an Open Source project licensed under the terms of the LGPLv3 license.
4
4
  Please see <http://www.gnu.org/licenses/lgpl-3.0.html> for license text.
@@ -15,7 +15,7 @@ module Mailgunner
15
15
  end
16
16
 
17
17
  def send_mime(mail)
18
- to = ['to', Array(mail.destinations).join(',')]
18
+ to = ['to', Array(mail.smtp_envelope_to).join(',')]
19
19
 
20
20
  message = ['message', mail.encoded, {filename: 'message.mime'}]
21
21
 
@@ -34,6 +34,10 @@ module Mailgunner
34
34
  delete("/v3/#{escape @domain}/unsubscribes/#{escape address_or_id}")
35
35
  end
36
36
 
37
+ def delete_unsubscribes
38
+ delete("/v3/#{escape @domain}/unsubscribes")
39
+ end
40
+
37
41
  def add_unsubscribe(attributes = ATTRIBUTES)
38
42
  post("/v3/#{escape @domain}/unsubscribes", attributes)
39
43
  end
@@ -54,6 +58,10 @@ module Mailgunner
54
58
  delete("/v3/#{escape @domain}/complaints/#{escape address}")
55
59
  end
56
60
 
61
+ def delete_complaints
62
+ delete("/v3/#{escape @domain}/complaints")
63
+ end
64
+
57
65
  def get_whitelists(params = PARAMS)
58
66
  get("/v3/#{escape @domain}/whitelists", query: params)
59
67
  end
@@ -1,11 +1,6 @@
1
- begin
2
- require 'mail/smtp_envelope'
3
- rescue LoadError
4
- require 'mail/check_delivery_params'
5
- end
1
+ require 'mail/smtp_envelope'
6
2
 
7
3
  module Mailgunner
8
- # @private
9
4
  class DeliveryMethod
10
5
  attr_accessor :settings
11
6
 
@@ -14,29 +9,11 @@ module Mailgunner
14
9
  end
15
10
 
16
11
  def deliver!(mail)
17
- check(mail)
12
+ envelope = Mail::SmtpEnvelope.new(mail)
18
13
 
19
14
  client = Client.new(**settings)
20
15
  client.send_mime(mail)
21
16
  end
22
-
23
- private
24
-
25
- if defined?(Mail::SmtpEnvelope) # mail v2.8.0+
26
- def check(mail)
27
- Mail::SmtpEnvelope.new(mail)
28
- end
29
- elsif Mail::CheckDeliveryParams.respond_to?(:check) # mail v2.6.6+
30
- def check(mail)
31
- Mail::CheckDeliveryParams.check(mail)
32
- end
33
- else
34
- include Mail::CheckDeliveryParams
35
-
36
- def check(mail)
37
- check_delivery_params(mail)
38
- end
39
- end
40
17
  end
41
18
 
42
19
  if defined?(ActionMailer)
@@ -2,7 +2,6 @@
2
2
 
3
3
  module Mailgunner
4
4
  class Error < StandardError
5
- # @private
6
5
  def self.parse(response)
7
6
  exception_class = case response
8
7
  when Net::HTTPUnauthorized
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
- require 'cgi'
2
+ require 'uri'
3
3
 
4
4
  module Mailgunner
5
5
  module Params
@@ -7,10 +7,8 @@ module Mailgunner
7
7
  params.flat_map { |k, vs| Array(vs).map { |v| "#{escape(k)}=#{escape(v)}" } }.join('&')
8
8
  end
9
9
 
10
- def self.escape(component)
11
- CGI.escape(component.to_s)
10
+ def self.escape(value)
11
+ URI.encode_uri_component(value)
12
12
  end
13
13
  end
14
-
15
- private_constant :Params
16
14
  end
@@ -1,5 +1,4 @@
1
1
  module Mailgunner
2
- # @private
3
2
  class Railtie < Rails::Railtie
4
3
  initializer 'mailgunner', before: 'action_mailer.set_configs' do
5
4
  require 'mailgunner/delivery_method'
@@ -1,3 +1,3 @@
1
1
  module Mailgunner
2
- VERSION = '3.3.0'
2
+ VERSION = '4.0.0'
3
3
  end
data/mailgunner.gemspec CHANGED
@@ -6,12 +6,12 @@ Gem::Specification.new do |s|
6
6
  s.license = 'LGPL-3.0'
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ['Tim Craft']
9
- s.email = ['mail@timcraft.com']
9
+ s.email = ['email@timcraft.com']
10
10
  s.homepage = 'https://github.com/readysteady/mailgunner'
11
11
  s.description = 'Ruby client for the Mailgun API'
12
12
  s.summary = 'Ruby client for the Mailgun API'
13
13
  s.files = Dir.glob('lib/**/*.rb') + %w(CHANGES.md LICENSE.txt README.md mailgunner.gemspec)
14
- s.required_ruby_version = '>= 2.5.0'
14
+ s.required_ruby_version = '>= 3.3.0'
15
15
  s.require_path = 'lib'
16
16
  s.metadata = {
17
17
  'homepage' => 'https://github.com/readysteady/mailgunner',
@@ -19,4 +19,8 @@ Gem::Specification.new do |s|
19
19
  'bug_tracker_uri' => 'https://github.com/readysteady/mailgunner/issues',
20
20
  'changelog_uri' => 'https://github.com/readysteady/mailgunner/blob/main/CHANGES.md'
21
21
  }
22
+ s.add_dependency 'net-http'
23
+ s.add_dependency 'openssl'
24
+ s.add_dependency 'json', '~> 2'
25
+ s.add_dependency 'uri', '~> 1'
22
26
  end
metadata CHANGED
@@ -1,18 +1,73 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailgunner
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Craft
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2023-11-01 00:00:00.000000000 Z
12
- dependencies: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: net-http
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: openssl
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: json
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '2'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '2'
54
+ - !ruby/object:Gem::Dependency
55
+ name: uri
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '1'
13
68
  description: Ruby client for the Mailgun API
14
69
  email:
15
- - mail@timcraft.com
70
+ - email@timcraft.com
16
71
  executables: []
17
72
  extensions: []
18
73
  extra_rdoc_files: []
@@ -49,7 +104,6 @@ metadata:
49
104
  source_code_uri: https://github.com/readysteady/mailgunner
50
105
  bug_tracker_uri: https://github.com/readysteady/mailgunner/issues
51
106
  changelog_uri: https://github.com/readysteady/mailgunner/blob/main/CHANGES.md
52
- post_install_message:
53
107
  rdoc_options: []
54
108
  require_paths:
55
109
  - lib
@@ -57,15 +111,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
57
111
  requirements:
58
112
  - - ">="
59
113
  - !ruby/object:Gem::Version
60
- version: 2.5.0
114
+ version: 3.3.0
61
115
  required_rubygems_version: !ruby/object:Gem::Requirement
62
116
  requirements:
63
117
  - - ">="
64
118
  - !ruby/object:Gem::Version
65
119
  version: '0'
66
120
  requirements: []
67
- rubygems_version: 3.4.10
68
- signing_key:
121
+ rubygems_version: 4.0.6
69
122
  specification_version: 4
70
123
  summary: Ruby client for the Mailgun API
71
124
  test_files: []