mailgun-ruby 1.3.0 → 1.3.2

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: f18ece3e95078672f58a188ff310d572559ac05aa442080a8a76ec357fa563b9
4
- data.tar.gz: 30a957419c41fa13342db90ca3ee386d1c312da20daa41c06229801e6c07ec95
3
+ metadata.gz: 58558189e49961ad39adc2090139cfe44158ec4ef56386ce2af0ea1eee0fdaeb
4
+ data.tar.gz: 82445ca2c1f030e2721c49a0a9226ee39b655ca9864a146d95fb0db303a2e6cf
5
5
  SHA512:
6
- metadata.gz: '0309b13c1dda7a95224776c9bb1e0a04a3bfef7945f9a92c24ea566742f183ff544294d9a8dd6af006856fa7c97d2175cf01fe84c72e85712c1da34ec08bc723'
7
- data.tar.gz: 90db979ec789797886fa5210ea3b2ec9bac048dbb440facd9f356324093cc98ce657ecc589f719efe4b4c2b51251153071b936db0cd34877370debe02912b66b
6
+ metadata.gz: d7de45e9c8f998fff873aae0c659e0c67a1cd3e59f5fcb9c28c36cbf0c5d52a798f50fc841b8b704837f9e4981dd41f55e9dc7991ada76ccbb1259aeffdcb7f9
7
+ data.tar.gz: 0dc6b85bcb6517f33c55ee353943e695856d99f2a6b0c7fe956f0f30ecfea3bc436ad962ba676f9780e7bf9959d748ab962f9e6d1c6e9e1a63ae1bb006092f0f
data/CHANGELOG.md CHANGED
@@ -4,6 +4,33 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [1.3.2] - 2025-01-30
8
+
9
+ ### Fixed
10
+
11
+ - Use Faraday::FlatParamsEncoder (https://github.com/mailgun/mailgun-ruby/pull/334)
12
+ - Update Message Builder doc (https://github.com/mailgun/mailgun-ruby/pull/338)
13
+ - Add Domain api version warnings (https://github.com/mailgun/mailgun-ruby/pull/339)
14
+
15
+ ## [1.3.1] - 2025-01-26
16
+
17
+ ### Fixed
18
+
19
+ - Fix mock mailgun responds (https://github.com/mailgun/mailgun-ruby/pull/331)
20
+ - Change mime-types to runtime dependency (https://github.com/mailgun/mailgun-ruby/pull/332)
21
+
22
+ ## [1.3.0] - 2025-01-26
23
+
24
+ ### Added
25
+
26
+ - Faraday as http client (https://github.com/mailgun/mailgun-ruby/pull/330)
27
+
28
+ ### Fixed
29
+
30
+ - Added documentation for updating webhook (https://github.com/mailgun/mailgun-ruby/pull/325)
31
+ - Remove duplicated entry from CHANGELOG (https://github.com/mailgun/mailgun-ruby/pull/318)
32
+ - Update template and metrics docs (https://github.com/mailgun/mailgun-ruby/pull/329)
33
+
7
34
  ## [1.2.16] - 2024-11-29
8
35
 
9
36
  ### Added
data/README.md CHANGED
@@ -19,7 +19,7 @@ gem install mailgun-ruby
19
19
  Gemfile:
20
20
 
21
21
  ```ruby
22
- gem 'mailgun-ruby', '~>1.2.16'
22
+ gem 'mailgun-ruby', '~>1.3.2'
23
23
  ```
24
24
 
25
25
  Usage
@@ -181,7 +181,6 @@ For usage examples on each API endpoint, head over to our official documentation
181
181
  pages. Or the [Snippets](docs/Snippets.md) file.
182
182
 
183
183
  This SDK includes the following components:
184
- - [Messages](docs/Messages.md)
185
184
  - [Message Builder](docs/MessageBuilder.md)
186
185
  - [Batch Message](docs/MessageBuilder.md#usage---batch-message)
187
186
  - [Opt-In Handler](docs/OptInHandler.md)
@@ -31,12 +31,18 @@ mb_obj.add_recipient(:to, "john.doe@example.com", {"first" => "John", "last" =>
31
31
  # Define a cc recipient.
32
32
  mb_obj.add_recipient(:cc, "sally.doe@example.com", {"first" => "Sally", "last" => "Doe"});
33
33
 
34
+ # Define the reply-to address.
35
+ mb_obj.reply_to("bob.doe@example.com", {"first" => "Bob", "last" => "Doe"});
36
+
34
37
  # Define the subject.
35
38
  mb_obj.subject("A message from the Ruby SDK using Message Builder!");
36
39
 
37
40
  # Define the body of the message.
38
41
  mb_obj.body_text("This is the text body of the message!");
39
42
 
43
+ # Define the HTML text of the message
44
+ mb_obj.body_html("<html><body><p>This is the text body of the message</p></body></html>");
45
+
40
46
  # Set the Message-Id header, provide a valid Message-Id.
41
47
  mb_obj.message_id("<20141014000000.11111.11111@example.com>")
42
48
 
@@ -63,6 +69,12 @@ mb_obj.add_inline_image "/path/to/file/header.png"
63
69
  # Schedule message in the future
64
70
  mb_obj.deliver_at("tomorrow 8:00AM PST");
65
71
 
72
+ # Turn Click Tracking on
73
+ mb_obj.track_clicks(true)
74
+
75
+ # Turn Click Tracking off
76
+ mb_obj.track_clicks(false)
77
+
66
78
  # Finally, send your message using the client
67
79
  result = mg_client.send_message("sending_domain.com", mb_obj)
68
80
 
@@ -37,6 +37,7 @@ module Mailgun
37
37
  conn.request :url_encoded
38
38
  conn.response :raise_error, include_request: true
39
39
  conn.adapter Faraday.default_adapter
40
+ conn.options.params_encoder = Faraday::FlatParamsEncoder
40
41
  end
41
42
 
42
43
  @test_mode = test_mode
@@ -19,6 +19,7 @@ module Mailgun
19
19
  #
20
20
  # Returns [Array] A list of domains (hash)
21
21
  def list(options = {})
22
+ warn('WARN: Client api version must be v4') unless @client.api_version == 'v4'
22
23
  @client.get('domains', options).to_h['items']
23
24
  end
24
25
  alias_method :get_domains, :list
@@ -29,6 +30,7 @@ module Mailgun
29
30
  #
30
31
  # Returns [Hash] Information on the requested domains.
31
32
  def info(domain)
33
+ warn('WARN: Client api version must be v4') unless @client.api_version == 'v4'
32
34
  fail(ParameterError, 'No domain given to find on Mailgun', caller) unless domain
33
35
  @client.get("domains/#{domain}").to_h!
34
36
  end
@@ -43,6 +45,7 @@ module Mailgun
43
45
  #
44
46
  # Returns [Hash] Information on the updated/verified domains
45
47
  def verify(domain)
48
+ warn('WARN: Client api version must be v4') unless @client.api_version == 'v4'
46
49
  fail(ParameterError, 'No domain given to verify on Mailgun', caller) unless domain
47
50
  @client.put("domains/#{domain}/verify", nil).to_h!
48
51
  end
@@ -61,6 +64,7 @@ module Mailgun
61
64
  #
62
65
  # Returns [Hash] of created domain
63
66
  def create(domain, options = {})
67
+ warn('WARN: Client api version must be v4') unless @client.api_version == 'v4'
64
68
  fail(ParameterError, 'No domain given to add on Mailgun', caller) unless domain
65
69
  options = { smtp_password: nil, spam_action: 'disabled', wildcard: false }.merge(options)
66
70
  options[:name] = domain
@@ -75,6 +79,7 @@ module Mailgun
75
79
  #
76
80
  # Returns [Boolean] if successful or not
77
81
  def remove(domain)
82
+ warn('WARN: Client api version must be v3') unless @client.api_version == 'v3'
78
83
  fail(ParameterError, 'No domain given to remove on Mailgun', caller) unless domain
79
84
  @client.delete("domains/#{domain}").to_h['message'] == 'Domain has been deleted'
80
85
  end
@@ -95,6 +100,7 @@ module Mailgun
95
100
  #
96
101
  # Returns [Hash] of updated domain
97
102
  def update(domain, options = {})
103
+ warn('WARN: Client api version must be v4') unless @client.api_version == 'v4'
98
104
  fail(ParameterError, 'No domain given to update on Mailgun', caller) unless domain
99
105
  @client.put("domains/#{domain}", options).to_h
100
106
  end
@@ -108,6 +114,7 @@ module Mailgun
108
114
  #
109
115
  # Returns [Hash] with message key
110
116
  def create_smtp_credentials(domain, options = {})
117
+ warn('WARN: Client api version must be v3') unless @client.api_version == 'v3'
111
118
  fail(ParameterError, 'No domain given to create credentials on Mailgun', caller) unless domain
112
119
  @client.post("domains/#{domain}/credentials", options).to_h
113
120
  end
@@ -121,6 +128,7 @@ module Mailgun
121
128
  #
122
129
  # Returns [Hash] with message key
123
130
  def update_smtp_credentials(domain, login, options = {})
131
+ warn('WARN: Client api version must be v3') unless @client.api_version == 'v3'
124
132
  fail(ParameterError, 'No domain given to update credentials on Mailgun', caller) unless domain
125
133
  fail(ParameterError, 'No login given to update credentials on Mailgun', caller) unless login
126
134
  @client.put("domains/#{domain}/credentials/#{login}", options).to_h
@@ -133,6 +141,7 @@ module Mailgun
133
141
  #
134
142
  # Returns [Hash] with message and spec keys
135
143
  def delete_smtp_credentials(domain, login)
144
+ warn('WARN: Client api version must be v3') unless @client.api_version == 'v3'
136
145
  fail(ParameterError, 'No domain given to delete credentials on Mailgun', caller) unless domain
137
146
  fail(ParameterError, 'No login given to delete credentials on Mailgun', caller) unless login
138
147
  @client.delete("domains/#{domain}/credentials/#{login}").to_h
@@ -144,6 +153,7 @@ module Mailgun
144
153
  #
145
154
  # Returns [Hash] Information on the delivery connection settings
146
155
  def get_domain_connection_settings(domain)
156
+ warn('WARN: Client api version must be v3') unless @client.api_version == 'v3'
147
157
  fail(ParameterError, 'No domain given to retrieve connections on Mailgun', caller) unless domain
148
158
  @client.get("domains/#{domain}/connection").to_h
149
159
  end
@@ -158,6 +168,7 @@ module Mailgun
158
168
  #
159
169
  # Returns [Hash] Information on the delivery connection settings
160
170
  def update_domain_connection_settings(domain, options = {})
171
+ warn('WARN: Client api version must be v3') unless @client.api_version == 'v3'
161
172
  fail(ParameterError, 'No domain given to update connections on Mailgun', caller) unless domain
162
173
  @client.put("domains/#{domain}/connection", options).to_h
163
174
  end
@@ -168,6 +179,7 @@ module Mailgun
168
179
  #
169
180
  # Returns [Hash] Information on the tracking settings
170
181
  def get_domain_tracking_settings(domain)
182
+ warn('WARN: Client api version must be v3') unless @client.api_version == 'v3'
171
183
  fail(ParameterError, 'No domain given to retrieve tracking settings on Mailgun', caller) unless domain
172
184
  @client.get("domains/#{domain}/tracking").to_h
173
185
  end
@@ -181,6 +193,7 @@ module Mailgun
181
193
  #
182
194
  # Returns [Hash] Information on the tracking open settings
183
195
  def update_domain_tracking_open_settings(domain, options = {})
196
+ warn('WARN: Client api version must be v3') unless @client.api_version == 'v3'
184
197
  fail(ParameterError, 'No domain given to update tracking settings on Mailgun', caller) unless domain
185
198
  @client.put("domains/#{domain}/tracking/open", options).to_h
186
199
  end
@@ -193,6 +206,7 @@ module Mailgun
193
206
  #
194
207
  # Returns [Hash] Information on the tracking click settings
195
208
  def update_domain_tracking_click_settings(domain, options = {})
209
+ warn('WARN: Client api version must be v3') unless @client.api_version == 'v3'
196
210
  fail(ParameterError, 'No domain given to update tracking settings on Mailgun', caller) unless domain
197
211
  @client.put("domains/#{domain}/tracking/click", options).to_h
198
212
  end
@@ -207,6 +221,7 @@ module Mailgun
207
221
  #
208
222
  # Returns [Hash] Information on the tracking unsubscribe settings
209
223
  def update_domain_tracking_unsubscribe_settings(domain, options = {})
224
+ warn('WARN: Client api version must be v3') unless @client.api_version == 'v3'
210
225
  fail(ParameterError, 'No domain given to update tracking settings on Mailgun', caller) unless domain
211
226
  @client.put("domains/#{domain}/tracking/unsubscribe", options).to_h
212
227
  end
@@ -220,6 +235,7 @@ module Mailgun
220
235
  #
221
236
  # Returns [Hash] Information on the DKIM authority
222
237
  def update_domain_dkim_authority(domain, options = {})
238
+ warn('WARN: Client api version must be v3') unless @client.api_version == 'v3'
223
239
  fail(ParameterError, 'No domain given to update tracking settings on Mailgun', caller) unless domain
224
240
  @client.put("domains/#{domain}/dkim_authority", options).to_h
225
241
  end
@@ -232,6 +248,7 @@ module Mailgun
232
248
  #
233
249
  # Returns [Hash] with message key
234
250
  def update_domain_dkim_selector(domain, options = {})
251
+ warn('WARN: Client api version must be v3') unless @client.api_version == 'v3'
235
252
  fail(ParameterError, 'No domain given to update tracking settings on Mailgun', caller) unless domain
236
253
  @client.put("domains/#{domain}/dkim_selector", options).to_h
237
254
  end
@@ -244,6 +261,7 @@ module Mailgun
244
261
  #
245
262
  # Returns [Hash] with message key
246
263
  def update_domain_web_prefix(domain, options = {})
264
+ warn('WARN: Client api version must be v3') unless @client.api_version == 'v3'
247
265
  fail(ParameterError, 'No domain given to update tracking settings on Mailgun', caller) unless domain
248
266
  @client.put("domains/#{domain}/web_prefix", options).to_h
249
267
  end
@@ -323,6 +341,7 @@ module Mailgun
323
341
  #
324
342
  # Returns [Array] A list of domains (hash)
325
343
  def get_domain_stats(domain, options = {})
344
+ warn('WARN: Client api version must be v3') unless @client.api_version == 'v3'
326
345
  fail(ParameterError, 'No domain given to list stats on Mailgun', caller) unless domain
327
346
  @client.get("#{domain}/stats/total", options).to_h
328
347
  end
@@ -29,7 +29,7 @@ module Mailgun
29
29
  # params - a Hash of query options and/or filters.
30
30
  #
31
31
  # Returns a Mailgun::Response object.
32
- def get(params = nil)
32
+ def get(params = {})
33
33
  self.next(params)
34
34
  end
35
35
 
@@ -40,7 +40,7 @@ module Mailgun
40
40
  # params - a Hash of query options and/or filters.
41
41
  #
42
42
  # Returns a Mailgun::Response object.
43
- def next(params = nil)
43
+ def next(params = {})
44
44
  get_events(params, @paging_next)
45
45
  end
46
46
 
@@ -51,7 +51,7 @@ module Mailgun
51
51
  # params - a Hash of query options and/or filters.
52
52
  #
53
53
  # Returns Mailgun::Response object.
54
- def previous(params = nil)
54
+ def previous(params = {})
55
55
  get_events(params, @paging_previous)
56
56
  end
57
57
 
@@ -75,7 +75,7 @@ module Mailgun
75
75
  # paging - the URL key used for previous/next requests
76
76
  #
77
77
  # Returns a Mailgun.Response object.
78
- def get_events(params = nil, paging = nil)
78
+ def get_events(params = {}, paging = nil)
79
79
  response = @client.get(construct_url(paging), params)
80
80
  extract_paging(response)
81
81
  response
@@ -1,4 +1,4 @@
1
1
  # It's the version. Yeay!
2
2
  module Mailgun
3
- VERSION = '1.3.0'
3
+ VERSION = '1.3.2'
4
4
  end
data/mailgun.gemspec CHANGED
@@ -30,12 +30,12 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency 'bundler', '>= 1.16.2'
31
31
  spec.add_development_dependency 'rspec', '~> 3.8.0'
32
32
  spec.add_development_dependency 'rake', '~> 12.3.2'
33
- spec.add_development_dependency 'mime-types'
34
33
  spec.add_development_dependency 'webmock', '~> 3.7'
35
34
  spec.add_development_dependency 'pry', '~> 0.11.3'
36
35
  spec.add_development_dependency 'vcr', '~> 3.0.3'
37
36
  spec.add_development_dependency 'simplecov', '~> 0.16.1'
38
37
  spec.add_development_dependency 'rails'
38
+ spec.add_dependency 'mime-types'
39
39
  spec.add_dependency 'faraday', "~> 2.1"
40
40
 
41
41
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
  require 'mailgun'
3
3
 
4
- vcr_opts = { :cassette_name => "routes" }
4
+ vcr_opts = { :cassette_name => "routes", :match_requests_on => [:uri, :method, :body] }
5
5
 
6
6
  describe 'For the Routes endpoint', order: :defined, vcr: vcr_opts do
7
7
  before(:all) do
@@ -25,6 +25,22 @@ describe 'For the Routes endpoint', order: :defined, vcr: vcr_opts do
25
25
  expect(result.body["route"]["priority"]).to eq(10)
26
26
  end
27
27
 
28
+ it 'creates a route with multiple actions' do
29
+ result = @mg_obj.post("routes", { priority: 10,
30
+ description: 'Integration Test Route',
31
+ expression: "match_recipient(\"#{@forward_to}\")",
32
+ action: ["forward(\"#{@recipient}\")", "stop()"] })
33
+
34
+ result.to_h!
35
+ expect(result.body["message"]).to eq("Route has been created")
36
+ expect(result.body["route"]["description"]).to eq("Integration Test Route")
37
+ expect(result.body["route"]["actions"].count).to eq 2
38
+ expect(result.body["route"]["actions"][0]).to include("forward(\"#{@recipient}\")")
39
+ expect(result.body["route"]["actions"][1]).to include("stop()")
40
+ expect(result.body["route"]["expression"]).to include("match_recipient(\"#{@forward_to}\")")
41
+ expect(result.body["route"]["priority"]).to eq(10)
42
+ end
43
+
28
44
  it 'gets a list of all routes.' do
29
45
  result = @mg_obj.get("routes", {:limit => 50})
30
46
 
@@ -172,4 +172,213 @@ http_interactions:
172
172
  address has been removed"}'
173
173
  http_version:
174
174
  recorded_at: Fri, 08 Jan 2016 20:33:30 GMT
175
- recorded_with: VCR 3.0.1
175
+ - request:
176
+ method: post
177
+ uri: https://api.mailgun.net/v3/DOMAIN.TEST/bounces
178
+ body:
179
+ encoding: UTF-8
180
+ string: address=integration-test%2Bemail%40DOMAIN.TEST&code=550&error=Integration+Test
181
+ headers:
182
+ User-Agent:
183
+ - mailgun-sdk-ruby/1.3.0
184
+ Accept:
185
+ - "*/*"
186
+ Authorization:
187
+ - Basic xxx==
188
+ Content-Type:
189
+ - application/x-www-form-urlencoded
190
+ Accept-Encoding:
191
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
192
+ response:
193
+ status:
194
+ code: 200
195
+ message: OK
196
+ headers:
197
+ Access-Control-Allow-Credentials:
198
+ - 'true'
199
+ Access-Control-Allow-Origin:
200
+ - "*"
201
+ Cache-Control:
202
+ - no-store
203
+ Content-Length:
204
+ - '145'
205
+ Content-Type:
206
+ - application/json; charset=utf-8
207
+ Date:
208
+ - Sun, 26 Jan 2025 07:29:04 GMT
209
+ Strict-Transport-Security:
210
+ - max-age=63072000; includeSubDomains
211
+ X-Mailgun-Key-Id:
212
+ - 90b59dea-f2d12a53
213
+ X-Request-Limit:
214
+ - '2500'
215
+ X-Request-Remaining:
216
+ - '2499'
217
+ X-Request-Reset:
218
+ - '1737876559178'
219
+ X-Xss-Protection:
220
+ - 1; mode=block
221
+ body:
222
+ encoding: UTF-8
223
+ string: '{"message":"Address has been added to the bounces table","address":"integration-test+email@DOMAIN.TEST"}
224
+
225
+ '
226
+ http_version:
227
+ recorded_at: Sun, 26 Jan 2025 07:29:04 GMT
228
+ - request:
229
+ method: get
230
+ uri: https://api.mailgun.net/v3/DOMAIN.TEST/bounces/integration-test+email@DOMAIN.TEST
231
+ body:
232
+ encoding: US-ASCII
233
+ string: ''
234
+ headers:
235
+ User-Agent:
236
+ - mailgun-sdk-ruby/1.3.0
237
+ Accept:
238
+ - "*/*"
239
+ Authorization:
240
+ - Basic xxx==
241
+ Accept-Encoding:
242
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
243
+ response:
244
+ status:
245
+ code: 200
246
+ message: OK
247
+ headers:
248
+ Access-Control-Allow-Credentials:
249
+ - 'true'
250
+ Access-Control-Allow-Origin:
251
+ - "*"
252
+ Cache-Control:
253
+ - no-store
254
+ Content-Length:
255
+ - '174'
256
+ Content-Type:
257
+ - application/json; charset=utf-8
258
+ Date:
259
+ - Sun, 26 Jan 2025 07:29:04 GMT
260
+ Strict-Transport-Security:
261
+ - max-age=63072000; includeSubDomains
262
+ X-Mailgun-Key-Id:
263
+ - 90b59dea-f2d12a53
264
+ X-Request-Limit:
265
+ - '2500'
266
+ X-Request-Remaining:
267
+ - '2498'
268
+ X-Request-Reset:
269
+ - '1737876559178'
270
+ X-Xss-Protection:
271
+ - 1; mode=block
272
+ body:
273
+ encoding: UTF-8
274
+ string: '{"address":"integration-test+email@DOMAIN.TEST","code":"550","error":"Integration
275
+ Test","created_at":"Sun, 26 Jan 2025 07:29:04 UTC"}
276
+
277
+ '
278
+ http_version:
279
+ recorded_at: Sun, 26 Jan 2025 07:29:04 GMT
280
+ - request:
281
+ method: get
282
+ uri: https://api.mailgun.net/v3/DOMAIN.TEST/bounces
283
+ body:
284
+ encoding: US-ASCII
285
+ string: ''
286
+ headers:
287
+ User-Agent:
288
+ - mailgun-sdk-ruby/1.3.0
289
+ Accept:
290
+ - "*/*"
291
+ Authorization:
292
+ - Basic xxx==
293
+ Accept-Encoding:
294
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
295
+ response:
296
+ status:
297
+ code: 200
298
+ message: OK
299
+ headers:
300
+ Access-Control-Allow-Credentials:
301
+ - 'true'
302
+ Access-Control-Allow-Origin:
303
+ - "*"
304
+ Cache-Control:
305
+ - no-store
306
+ Content-Length:
307
+ - '858'
308
+ Content-Type:
309
+ - application/json; charset=utf-8
310
+ Date:
311
+ - Sun, 26 Jan 2025 07:29:05 GMT
312
+ Strict-Transport-Security:
313
+ - max-age=63072000; includeSubDomains
314
+ X-Mailgun-Key-Id:
315
+ - 90b59dea-f2d12a53
316
+ X-Request-Limit:
317
+ - '2500'
318
+ X-Request-Remaining:
319
+ - '2497'
320
+ X-Request-Reset:
321
+ - '1737876559178'
322
+ X-Xss-Protection:
323
+ - 1; mode=block
324
+ body:
325
+ encoding: UTF-8
326
+ string: '{"items":[{"address":"integration-test+email@DOMAIN.TEST","code":"550","error":"Integration
327
+ Test","created_at":"Sun, 26 Jan 2025 07:29:04 UTC"}],"paging":{"first":"https://api.mailgun.net/v3/DOMAIN.TEST/bounces?limit=100&term=","last":"https://api.mailgun.net/v3/DOMAIN.TEST/bounces?page=last&limit=100&term=","next":"https://api.mailgun.net/v3/DOMAIN.TEST/bounces?page=next&address=integration-test%2Bemail%40DOMAIN.TEST&limit=100&term=","previous":"https://api.mailgun.net/v3/DOMAIN.TEST/bounces?page=previous&address=integration-test%2Bemail%40DOMAIN.TEST&limit=100&term="}}
328
+
329
+ '
330
+ http_version:
331
+ recorded_at: Sun, 26 Jan 2025 07:29:05 GMT
332
+ - request:
333
+ method: delete
334
+ uri: https://api.mailgun.net/v3/DOMAIN.TEST/bounces/integration-test+email@DOMAIN.TEST
335
+ body:
336
+ encoding: US-ASCII
337
+ string: ''
338
+ headers:
339
+ User-Agent:
340
+ - mailgun-sdk-ruby/1.3.0
341
+ Accept:
342
+ - "*/*"
343
+ Authorization:
344
+ - Basic xxx==
345
+ Accept-Encoding:
346
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
347
+ response:
348
+ status:
349
+ code: 200
350
+ message: OK
351
+ headers:
352
+ Access-Control-Allow-Credentials:
353
+ - 'true'
354
+ Access-Control-Allow-Origin:
355
+ - "*"
356
+ Cache-Control:
357
+ - no-store
358
+ Content-Length:
359
+ - '134'
360
+ Content-Type:
361
+ - application/json; charset=utf-8
362
+ Date:
363
+ - Sun, 26 Jan 2025 07:29:06 GMT
364
+ Strict-Transport-Security:
365
+ - max-age=63072000; includeSubDomains
366
+ X-Mailgun-Key-Id:
367
+ - 90b59dea-f2d12a53
368
+ X-Request-Limit:
369
+ - '2500'
370
+ X-Request-Remaining:
371
+ - '2496'
372
+ X-Request-Reset:
373
+ - '1737876559178'
374
+ X-Xss-Protection:
375
+ - 1; mode=block
376
+ body:
377
+ encoding: UTF-8
378
+ string: '{"address":"integration-test+email@DOMAIN.TEST","message":"Bounced
379
+ address has been removed"}
380
+
381
+ '
382
+ http_version:
383
+ recorded_at: Sun, 26 Jan 2025 07:29:06 GMT
384
+ recorded_with: VCR 3.0.3