mailgun-ruby 1.4.0 → 1.4.1

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.
@@ -1088,4 +1088,156 @@ http_interactions:
1088
1088
  '
1089
1089
  http_version:
1090
1090
  recorded_at: Thu, 28 Aug 2025 14:47:08 GMT
1091
+ - request:
1092
+ method: put
1093
+ uri: https://api.mailgun.net/v4/domains/integration-test.domain.invalid/verify
1094
+ body:
1095
+ encoding: UTF-8
1096
+ string: ''
1097
+ headers:
1098
+ User-Agent:
1099
+ - mailgun-sdk-ruby/1.4.0
1100
+ Accept:
1101
+ - "*/*"
1102
+ Authorization:
1103
+ - Basic xxx
1104
+ Content-Length:
1105
+ - '0'
1106
+ Accept-Encoding:
1107
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
1108
+ response:
1109
+ status:
1110
+ code: 200
1111
+ message: OK
1112
+ headers:
1113
+ Access-Control-Allow-Credentials:
1114
+ - 'true'
1115
+ Access-Control-Allow-Origin:
1116
+ - "*"
1117
+ Cache-Control:
1118
+ - no-store
1119
+ Content-Length:
1120
+ - '1752'
1121
+ Content-Type:
1122
+ - application/json; charset=utf-8
1123
+ Date:
1124
+ - Sat, 27 Dec 2025 23:47:46 GMT
1125
+ Strict-Transport-Security:
1126
+ - max-age=63072000; includeSubDomains
1127
+ X-Mailgun-Key-Id:
1128
+ - xxx
1129
+ X-Request-Limit:
1130
+ - '10'
1131
+ X-Request-Remaining:
1132
+ - '9'
1133
+ X-Request-Reset:
1134
+ - '1766879267069'
1135
+ X-Xss-Protection:
1136
+ - 1; mode=block
1137
+ body:
1138
+ encoding: UTF-8
1139
+ string: '{"message":"Domain DNS records have been updated","domain":{"created_at":"Thu,
1140
+ 27 Nov 2025 22:42:06 GMT","id":"xxx","is_disabled":false,"name":"integration-test.domain.invalid","require_tls":false,"skip_verification":false,"smtp_login":"","spam_action":"tag","state":"unverified","type":"custom","use_automatic_sender_security":false,"web_prefix":"email","web_scheme":"http","wildcard":false,"encrypt_incoming_message":false,"message_ttl":0},"sending_dns_records":[{"is_active":false,"cached":[],"name":"k1._domainkey.integration-test.domain.invalid","record_type":"TXT","valid":"unknown","value":"k=rsa;
1141
+ p=xxx+xxx+xxx"},{"is_active":false,"cached":[],"name":"string._domainkey.integration-test.domain.invalid","record_type":"TXT","valid":"unknown","value":"k=rsa;
1142
+ p=xxx/xxx+xx+xxx+xxx+xxx/xxx/xxx"},{"is_active":true,"cached":[],"name":"integration-test.domain.invalid","record_type":"TXT","valid":"unknown","value":"v=spf1
1143
+ include:mailgun.org ~all"},{"is_active":true,"cached":[],"name":"email.integration-test.domain.invalid","record_type":"CNAME","valid":"unknown","value":"mailgun.org"}],"receiving_dns_records":[{"is_active":true,"cached":[],"priority":"10","record_type":"MX","valid":"unknown","value":"mxa.mailgun.org"},{"is_active":true,"cached":[],"priority":"10","record_type":"MX","valid":"unknown","value":"mxb.mailgun.org"}]}
1144
+
1145
+ '
1146
+ http_version:
1147
+ recorded_at: Sat, 27 Dec 2025 23:47:46 GMT
1148
+ - request:
1149
+ method: post
1150
+ uri: https://api.mailgun.net/v1/dkim/keys
1151
+ body:
1152
+ encoding: UTF-8
1153
+ string: selector=test&signing_domain=integration-test.domain.invalid
1154
+ headers:
1155
+ User-Agent:
1156
+ - mailgun-sdk-ruby/1.4.0
1157
+ Accept:
1158
+ - "*/*"
1159
+ Authorization:
1160
+ - Basic xxx
1161
+ Content-Type:
1162
+ - application/x-www-form-urlencoded
1163
+ Accept-Encoding:
1164
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
1165
+ response:
1166
+ status:
1167
+ code: 200
1168
+ message: OK
1169
+ headers:
1170
+ Access-Control-Allow-Credentials:
1171
+ - 'true'
1172
+ Access-Control-Allow-Origin:
1173
+ - "*"
1174
+ Cache-Control:
1175
+ - no-store
1176
+ Content-Length:
1177
+ - '447'
1178
+ Content-Type:
1179
+ - application/json; charset=utf-8
1180
+ Date:
1181
+ - Sun, 28 Dec 2025 00:07:03 GMT
1182
+ Strict-Transport-Security:
1183
+ - max-age=63072000; includeSubDomains
1184
+ X-Mailgun-Key-Id:
1185
+ - xxx
1186
+ X-Xss-Protection:
1187
+ - 1; mode=block
1188
+ body:
1189
+ encoding: UTF-8
1190
+ string: '{"signing_domain":"integration-test.domain.invalid","selector":"test","dns_record":{"is_active":false,"cached":[],"name":"test._domainkey.integration-test.domain.invalid","record_type":"TXT","valid":"unknown","value":"k=rsa;
1191
+ p=xxx"}}
1192
+
1193
+ '
1194
+ http_version:
1195
+ recorded_at: Sun, 28 Dec 2025 00:07:03 GMT
1196
+ - request:
1197
+ method: get
1198
+ uri: https://api.mailgun.net/v1/dkim/keys?signing_domain=integration-test.domain.invalid
1199
+ body:
1200
+ encoding: US-ASCII
1201
+ string: ''
1202
+ headers:
1203
+ User-Agent:
1204
+ - mailgun-sdk-ruby/1.4.0
1205
+ Accept:
1206
+ - "*/*"
1207
+ Authorization:
1208
+ - Basic xxx
1209
+ Accept-Encoding:
1210
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
1211
+ response:
1212
+ status:
1213
+ code: 200
1214
+ message: OK
1215
+ headers:
1216
+ Access-Control-Allow-Credentials:
1217
+ - 'true'
1218
+ Access-Control-Allow-Origin:
1219
+ - "*"
1220
+ Cache-Control:
1221
+ - no-store
1222
+ Content-Length:
1223
+ - '1767'
1224
+ Content-Type:
1225
+ - application/json; charset=utf-8
1226
+ Date:
1227
+ - Sun, 28 Dec 2025 00:12:23 GMT
1228
+ Strict-Transport-Security:
1229
+ - max-age=63072000; includeSubDomains
1230
+ X-Mailgun-Key-Id:
1231
+ - xxx
1232
+ X-Xss-Protection:
1233
+ - 1; mode=block
1234
+ body:
1235
+ encoding: UTF-8
1236
+ string: '{"items":[{"signing_domain":"integration-test.domain.invalid","selector":"k1","dns_record":{"is_active":false,"cached":[],"name":"k1._domainkey.integration-test.domain.invalid","record_type":"TXT","valid":"unknown","value":"k=rsa;
1237
+ p=xxx"}},{"signing_domain":"integration-test.domain.invalid","selector":"test","dns_record":{"is_active":false,"cached":[],"name":"test._domainkey.integration-test.domain.invalid","record_type":"TXT","valid":"unknown","value":"k=rsa;
1238
+ p=xxx"}}],"paging":{"previous":"https://api.mailgun.net/v1/dkim/keys?page=xxx","first":"https://api.mailgun.net/v1/dkim/keys?page=xxx","next":"https://api.mailgun.net/v1/dkim/keys?page=xxx","last":"https://api.mailgun.net/v1/dkim/keys?page=xxx"}}
1239
+
1240
+ '
1241
+ http_version:
1242
+ recorded_at: Sun, 28 Dec 2025 00:12:23 GMT
1091
1243
  recorded_with: VCR 3.0.3
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailgun-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mailgun
8
8
  - Travis Swientek
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-09-29 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -44,28 +44,28 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.3.1
47
+ version: 2.0.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.3.1
54
+ version: 2.0.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 12.3.2
61
+ version: 13.3.1
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 12.3.2
68
+ version: 13.3.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: webmock
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -86,28 +86,28 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.15.2
89
+ version: 0.16.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.15.2
96
+ version: 0.16.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: vcr
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 3.0.3
103
+ version: 6.4.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 3.0.3
110
+ version: 6.4.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: simplecov
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -168,16 +168,30 @@ dependencies:
168
168
  name: faraday-multipart
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - "~>"
171
+ - - "<"
172
172
  - !ruby/object:Gem::Version
173
- version: 1.1.0
173
+ version: '2'
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - "~>"
178
+ - - "<"
179
+ - !ruby/object:Gem::Version
180
+ version: '2'
181
+ - !ruby/object:Gem::Dependency
182
+ name: zeitwerk
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
179
186
  - !ruby/object:Gem::Version
180
- version: 1.1.0
187
+ version: '0'
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
181
195
  description: Mailgun's Official Ruby SDK for interacting with the Mailgun API.
182
196
  email: support@mailgunhq.com
183
197
  executables: []
@@ -226,6 +240,7 @@ files:
226
240
  - lib/mailgun/response.rb
227
241
  - lib/mailgun/subaccounts/subaccounts.rb
228
242
  - lib/mailgun/suppressions.rb
243
+ - lib/mailgun/tags/analytics_tags.rb
229
244
  - lib/mailgun/tags/tags.rb
230
245
  - lib/mailgun/templates/templates.rb
231
246
  - lib/mailgun/version.rb
@@ -234,7 +249,6 @@ files:
234
249
  - lib/railgun/attachment.rb
235
250
  - lib/railgun/errors.rb
236
251
  - lib/railgun/mailer.rb
237
- - lib/railgun/message.rb
238
252
  - lib/railgun/railtie.rb
239
253
  - mailgun.gemspec
240
254
  - spec/integration/bounces_spec.rb
@@ -254,7 +268,6 @@ files:
254
268
  - spec/integration/stats_spec.rb
255
269
  - spec/integration/subaccounts_spec.rb
256
270
  - spec/integration/suppressions_spec.rb
257
- - spec/integration/tags.rb
258
271
  - spec/integration/templates_spec.rb
259
272
  - spec/integration/unsubscribes_spec.rb
260
273
  - spec/integration/webhook_spec.rb
@@ -294,7 +307,6 @@ files:
294
307
  - vcr_cassettes/stats.yml
295
308
  - vcr_cassettes/subaccounts.yml
296
309
  - vcr_cassettes/suppressions.yml
297
- - vcr_cassettes/tags.yml
298
310
  - vcr_cassettes/templates.yml
299
311
  - vcr_cassettes/unsubscribes.yml
300
312
  - vcr_cassettes/webhooks.yml
@@ -311,14 +323,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
311
323
  requirements:
312
324
  - - ">="
313
325
  - !ruby/object:Gem::Version
314
- version: 2.6.10
326
+ version: 3.0.0
315
327
  required_rubygems_version: !ruby/object:Gem::Requirement
316
328
  requirements:
317
329
  - - ">="
318
330
  - !ruby/object:Gem::Version
319
331
  version: '0'
320
332
  requirements: []
321
- rubygems_version: 3.6.2
333
+ rubygems_version: 4.0.3
322
334
  specification_version: 4
323
335
  summary: Mailgun's Official Ruby SDK
324
336
  test_files:
@@ -339,7 +351,6 @@ test_files:
339
351
  - spec/integration/stats_spec.rb
340
352
  - spec/integration/subaccounts_spec.rb
341
353
  - spec/integration/suppressions_spec.rb
342
- - spec/integration/tags.rb
343
354
  - spec/integration/templates_spec.rb
344
355
  - spec/integration/unsubscribes_spec.rb
345
356
  - spec/integration/webhook_spec.rb
@@ -1,18 +0,0 @@
1
- require 'mail'
2
- require 'mailgun/messages/message_builder'
3
- require 'railgun/attachment'
4
- require 'railgun/errors'
5
-
6
- module Mail
7
-
8
- class Message
9
-
10
- # Attributes to hold Mailgun-specific information
11
- attr_accessor :mailgun_variables,
12
- :mailgun_options,
13
- :mailgun_recipient_variables,
14
- :mailgun_headers,
15
- :mailgun_template_variables
16
-
17
- end
18
- end
@@ -1,139 +0,0 @@
1
- require 'spec_helper'
2
- require 'mailgun'
3
-
4
- vcr_opts = { :cassette_name => "tags" }
5
-
6
- describe 'For the tags endpoints', vcr: vcr_opts do
7
- let(:tag_name) { 'abtest-option-a' }
8
- let(:domain) { "integration-test.domain.invalid" }
9
-
10
- before(:all) do
11
- @mg_client = Mailgun::Client.new(APIKEY, APIHOST, APIVERSION, SSL)
12
- @tags = Mailgun::Tags.new(@mg_client)
13
- end
14
-
15
- describe '#get_tags' do
16
- it 'returs tags info' do
17
- result = @tags.get_tags(domain)
18
-
19
- expect(result.first['tag']).to eq('You can track mails as tag-units!')
20
- end
21
- end
22
-
23
- describe '#get_tag' do
24
- it "return the tag's info" do
25
- result = @tags.get_tag(domain, tag_name)
26
-
27
- expect(result['tag']).to eq(tag_name)
28
- end
29
- end
30
-
31
- describe '#update' do
32
- it "returns true" do
33
- result = @tags.update(
34
- domain,
35
- tag_name,
36
- { description: 'new description 2' }
37
- )
38
-
39
- expect(result).to eq(true)
40
- end
41
- end
42
-
43
- describe '#get_tag_stats' do
44
- it "returns tag stats info" do
45
- result = @tags.get_tag_stats(
46
- domain,
47
- tag_name,
48
- {
49
- event: 'accepted',
50
- start: 'Tue, 23 Jan 2024 11:23:45 EST',
51
- resolution: 'day'
52
- }
53
- )
54
-
55
- expect(result).to include('stats')
56
- expect(result['stats'].first['accepted']).to include(
57
- {
58
- 'incoming' => 0,
59
- 'outgoing' => 0,
60
- 'total' => 0
61
- }
62
- )
63
- end
64
- end
65
-
66
- describe '#get_countries_aggregated_stats' do
67
- it "returns countries of origin for a given domain" do
68
- result = @tags.get_countries_aggregated_stats(
69
- domain,
70
- tag_name
71
- )
72
-
73
- expect(result).to include('country')
74
- expect(result['country']['ad']).to include(
75
- {
76
- 'clicked' => 0,
77
- 'complained' => 0,
78
- 'opened' => 0,
79
- 'unique_clicked' => 0,
80
- 'unique_opened' => 0,
81
- 'unsubscribed' => 0
82
- }
83
- )
84
- end
85
- end
86
-
87
- describe '#get_providers_aggregated_stats' do
88
- it "returns email providers for a given domain" do
89
- result = @tags.get_providers_aggregated_stats(
90
- domain,
91
- tag_name
92
- )
93
-
94
- expect(result).to include('provider')
95
- expect(result['provider']['aol.com']).to include(
96
- {
97
- 'clicked' => 0,
98
- 'complained' => 0,
99
- 'opened' => 0,
100
- 'unique_clicked' => 0,
101
- 'unique_opened' => 0,
102
- 'unsubscribed' => 0
103
- }
104
- )
105
- end
106
- end
107
-
108
- describe '#get_devices_aggregated_stats' do
109
- it "returns devices for a given domain" do
110
- result = @tags.get_devices_aggregated_stats(
111
- domain,
112
- tag_name
113
- )
114
-
115
- expect(result).to include('device')
116
- expect(result['device']['desktop']).to include(
117
- {
118
- 'clicked' => 0,
119
- 'complained' => 0,
120
- 'opened' => 28,
121
- 'unique_clicked' => 0,
122
- 'unique_opened' => 24,
123
- 'unsubscribed' => 0
124
- }
125
- )
126
- end
127
- end
128
-
129
- describe '#remove' do
130
- it "returns true" do
131
- result = @tags.remove(
132
- domain,
133
- tag_name
134
- )
135
-
136
- expect(result).to eq(true)
137
- end
138
- end
139
- end