mailjet 1.8.3 → 1.9.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 +4 -4
- data/README.md +100 -4
- data/lib/mailjet/resource.rb +12 -1
- data/lib/mailjet/resources/apikeytotals.rb +1 -0
- data/lib/mailjet/resources/campaigngraphstatistics.rb +1 -0
- data/lib/mailjet/resources/campaignstatistics.rb +1 -0
- data/lib/mailjet/resources/domainstatistics.rb +1 -0
- data/lib/mailjet/resources/graphstatistics.rb +1 -0
- data/lib/mailjet/resources/liststatistics.rb +1 -0
- data/lib/mailjet/resources/messagestatistics.rb +1 -0
- data/lib/mailjet/resources/newsletter.rb +1 -0
- data/lib/mailjet/resources/newsletter_detailcontent.rb +1 -0
- data/lib/mailjet/resources/newsletter_schedule.rb +1 -0
- data/lib/mailjet/resources/newsletter_send.rb +1 -0
- data/lib/mailjet/resources/newsletter_status.rb +1 -0
- data/lib/mailjet/resources/newsletter_test.rb +1 -0
- data/lib/mailjet/resources/openstatistics.rb +1 -0
- data/lib/mailjet/resources/senderstatistics.rb +1 -0
- data/lib/mailjet/resources/statcounters.rb +1 -1
- data/lib/mailjet/resources/statistics_recipient_esp.rb +30 -0
- data/lib/mailjet/version.rb +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0d0848688b6e2cc4cdc79891142ebdb5589ba9104e9a3a8542272879c3eae647
|
|
4
|
+
data.tar.gz: 410632493ccee4d6239af3f0062a8babe986139329a1fe7d0d6eca50e2e28fd5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 20c7088de3527b7a0ae07f3e88087cf112e7009e2b1e9399847457481da6ddc6e0842a6bb985e8740dbfd6231b4a22c6c0a727607d8e1f2faf76d0a4cadefc29
|
|
7
|
+
data.tar.gz: ca85d5e43414bd5bd2523bfb857ff08759a16b5f69d2ee9f74a66007fae5dd988eb213d5ef3d3b292c8671018ab74789dababa3f4af48aeb46fa8d94bd6a3619
|
data/README.md
CHANGED
|
@@ -67,6 +67,10 @@ Check out all the resources and Ruby code examples in the [Offical Documentation
|
|
|
67
67
|
- [Retrieve the first object matching the query](retrieve-the-first-object-matching-the-query)
|
|
68
68
|
- [PUT request](#put-request)
|
|
69
69
|
- [DELETE request](#delete-request)
|
|
70
|
+
- [Deprecated resources](#deprecated-resources)
|
|
71
|
+
- [Newsletters to campaign drafts](#newsletters-to-campaign-drafts)
|
|
72
|
+
- [Legacy statistics to statcounters](#legacy-statistics-to-statcounters)
|
|
73
|
+
- [Domain statistics to recipient ESP statistics](#domain-statistics-to-recipient-esp-statistics)
|
|
70
74
|
- [Send emails with ActionMailer](#send-emails-with-actionmailer)
|
|
71
75
|
- [Track email delivery](#track-email-delivery)
|
|
72
76
|
- [Testing](#testing)
|
|
@@ -204,7 +208,7 @@ You can find the list of all available resources for this library, as well as th
|
|
|
204
208
|
### Naming conventions
|
|
205
209
|
|
|
206
210
|
- Class names' first letter is capitalized followed by the rest of the resource name in lowercase (e.g. `listrecipient` will be `Listrecipient` in ruby)
|
|
207
|
-
- Ruby attribute names are the underscored versions of API attributes names (e.g. `
|
|
211
|
+
- Ruby attribute names are the underscored versions of API attributes names (e.g. `IsUnsubscribed` will be `is_unsubscribed` in ruby)
|
|
208
212
|
|
|
209
213
|
## Request examples
|
|
210
214
|
|
|
@@ -314,13 +318,13 @@ Here's an example of a PUT request:
|
|
|
314
318
|
```ruby
|
|
315
319
|
> recipient = Mailjet::Listrecipient.first
|
|
316
320
|
=> #<Mailjet::Listrecipient>
|
|
317
|
-
> recipient.
|
|
318
|
-
=>
|
|
321
|
+
> recipient.is_unsubscribed = true
|
|
322
|
+
=> true
|
|
319
323
|
> recipient.attributes
|
|
320
324
|
=> {...} # attributes hash
|
|
321
325
|
> recipient.save
|
|
322
326
|
=> true
|
|
323
|
-
> recipient.update_attributes(
|
|
327
|
+
> recipient.update_attributes(is_unsubscribed: false)
|
|
324
328
|
=> true
|
|
325
329
|
```
|
|
326
330
|
|
|
@@ -338,6 +342,98 @@ Here's an example of a `DELETE` request:
|
|
|
338
342
|
|
|
339
343
|
Upon a successful `DELETE` request the response will not include a response body, but only a `204 No Content` response code.
|
|
340
344
|
|
|
345
|
+
## Deprecated resources
|
|
346
|
+
|
|
347
|
+
Mailjet has [deprecated some Email API endpoints](https://dev.mailjet.com/openapi/openapi-mailjet/deprecated-endpoints) and plans to shut them down. Since 1.9.0, the classes that wrap them print a warning the first time they are used, naming the replacement; run Ruby with `-W0` to silence it. They will be removed in 2.0.0, once Mailjet shuts the endpoints down.
|
|
348
|
+
|
|
349
|
+
| Deprecated class | Replacement |
|
|
350
|
+
| --- | --- |
|
|
351
|
+
| `Newsletter` | `Campaigndraft` |
|
|
352
|
+
| `Newsletter_detailcontent` | `Campaigndraft_detailcontent` |
|
|
353
|
+
| `Newsletter_schedule` | `Campaigndraft_schedule` |
|
|
354
|
+
| `Newsletter_send` | `Campaigndraft_send` |
|
|
355
|
+
| `Newsletter_status` | `Campaigndraft_status` |
|
|
356
|
+
| `Newsletter_test` | `Campaigndraft_test` |
|
|
357
|
+
| `Apikeytotals` | `Statcounters` with `counter_source: "APIKey"` |
|
|
358
|
+
| `Campaigngraphstatistics` | `Statcounters` with `counter_source: "Campaign"` |
|
|
359
|
+
| `Campaignstatistics` | `Statcounters` with `counter_source: "Campaign"` |
|
|
360
|
+
| `Graphstatistics` | `Statcounters` with `counter_resolution: "Day"` or `"Hour"` |
|
|
361
|
+
| `Liststatistics` | `Statcounters` with `counter_source: "List"` |
|
|
362
|
+
| `Messagestatistics` | `Statcounters` with `counter_timing: "Message"` |
|
|
363
|
+
| `Openstatistics` | `Statcounters` with `counter_timing: "Message"` |
|
|
364
|
+
| `Senderstatistics` | `Statcounters` with `counter_source: "Sender"` |
|
|
365
|
+
| `Domainstatistics` | `Statistics_recipient_esp` |
|
|
366
|
+
|
|
367
|
+
### Newsletters to campaign drafts
|
|
368
|
+
|
|
369
|
+
The `Campaigndraft` classes take the same calls as the `Newsletter` ones. `Sender` is the ID of a validated sender (see `Mailjet::Sender`).
|
|
370
|
+
|
|
371
|
+
```ruby
|
|
372
|
+
draft = Mailjet::Campaigndraft.create(
|
|
373
|
+
"Locale" => "en_US",
|
|
374
|
+
"Title" => "October news",
|
|
375
|
+
"Subject" => "October news",
|
|
376
|
+
"Sender" => sender_id,
|
|
377
|
+
"SenderEmail" => "sender@example.com",
|
|
378
|
+
"ContactsListID" => contacts_list_id
|
|
379
|
+
)
|
|
380
|
+
Mailjet::Campaigndraft_detailcontent.create(id: draft.id, "Text-part" => "Hello", "Html-part" => "<p>Hello</p>")
|
|
381
|
+
Mailjet::Campaigndraft_send.create(id: draft.id)
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
One call behaves differently: `Campaigndraft_detailcontent.find` returns an array, where `Newsletter_detailcontent.find` returned a single object.
|
|
385
|
+
|
|
386
|
+
```ruby
|
|
387
|
+
# Before
|
|
388
|
+
content = Mailjet::Newsletter_detailcontent.find(newsletter_id)
|
|
389
|
+
|
|
390
|
+
# After
|
|
391
|
+
content = Mailjet::Campaigndraft_detailcontent.find(draft_id).first
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
### Legacy statistics to statcounters
|
|
395
|
+
|
|
396
|
+
`Statcounters` takes a source, a timing and a resolution. The `Day` and `Hour` resolutions also need a `from_ts`/`to_ts` range; without one the API answers 400.
|
|
397
|
+
|
|
398
|
+
```ruby
|
|
399
|
+
# Before
|
|
400
|
+
Mailjet::Campaignstatistics.find(campaign_id)
|
|
401
|
+
|
|
402
|
+
# After
|
|
403
|
+
Mailjet::Statcounters.all(
|
|
404
|
+
source_id: campaign_id,
|
|
405
|
+
counter_source: "Campaign",
|
|
406
|
+
counter_timing: "Message",
|
|
407
|
+
counter_resolution: "Lifetime"
|
|
408
|
+
)
|
|
409
|
+
|
|
410
|
+
# Totals for your API key, replacing Apikeytotals
|
|
411
|
+
Mailjet::Statcounters.all(counter_source: "APIKey", counter_timing: "Message", counter_resolution: "Lifetime")
|
|
412
|
+
|
|
413
|
+
# Daily counts, replacing the graph statistics
|
|
414
|
+
Mailjet::Statcounters.all(
|
|
415
|
+
source_id: campaign_id,
|
|
416
|
+
counter_source: "Campaign",
|
|
417
|
+
counter_timing: "Message",
|
|
418
|
+
counter_resolution: "Day",
|
|
419
|
+
from_ts: Time.utc(2026, 10, 1).to_i,
|
|
420
|
+
to_ts: Time.utc(2026, 11, 1).to_i
|
|
421
|
+
)
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
### Domain statistics to recipient ESP statistics
|
|
425
|
+
|
|
426
|
+
`Statistics_recipient_esp` groups a campaign's statistics by recipient email service provider (Gmail, Microsoft and so on) rather than by domain, and it needs a campaign ID.
|
|
427
|
+
|
|
428
|
+
```ruby
|
|
429
|
+
# Before
|
|
430
|
+
Mailjet::Domainstatistics.all
|
|
431
|
+
|
|
432
|
+
# After
|
|
433
|
+
Mailjet::Statistics_recipient_esp.all(campaign_id: campaign_id)
|
|
434
|
+
Mailjet::Statistics_recipient_esp.all(campaign_id: campaign_id, esp_name: "gmail")
|
|
435
|
+
```
|
|
436
|
+
|
|
341
437
|
## Send emails with ActionMailer
|
|
342
438
|
|
|
343
439
|
A quick walkthrough to use Rails Action Mailer [here](http://guides.rubyonrails.org/action_mailer_basics.html).
|
data/lib/mailjet/resource.rb
CHANGED
|
@@ -24,12 +24,13 @@ module Mailjet
|
|
|
24
24
|
def self.included(base)
|
|
25
25
|
base.extend ClassMethods
|
|
26
26
|
base.class_eval do
|
|
27
|
-
cattr_accessor :resource_path, :public_operations, :read_only, :filters, :resourceprop, :read_only_attributes, :action, :non_json_urls, :version
|
|
27
|
+
cattr_accessor :resource_path, :public_operations, :read_only, :filters, :resourceprop, :read_only_attributes, :action, :non_json_urls, :version, :replaced_by
|
|
28
28
|
cattr_writer :connection
|
|
29
29
|
|
|
30
30
|
self.read_only_attributes = []
|
|
31
31
|
|
|
32
32
|
def self.connection(options = {})
|
|
33
|
+
warn_if_deprecated
|
|
33
34
|
class_variable_get(:@@connection) || default_connection(options)
|
|
34
35
|
end
|
|
35
36
|
|
|
@@ -241,6 +242,8 @@ module Mailjet
|
|
|
241
242
|
'Html-part'
|
|
242
243
|
elsif key == "inline_attachments"
|
|
243
244
|
'Inline_attachments'
|
|
245
|
+
elsif method == :camelcase && key.to_s == "esp_name"
|
|
246
|
+
'ESP_Name'
|
|
244
247
|
else
|
|
245
248
|
key.to_s.send(method)
|
|
246
249
|
end
|
|
@@ -259,6 +262,14 @@ module Mailjet
|
|
|
259
262
|
.merge(options.symbolize_keys.slice(*OPTIONS))
|
|
260
263
|
end
|
|
261
264
|
|
|
265
|
+
# deprecated resources set replaced_by and warn once, on first use
|
|
266
|
+
def warn_if_deprecated
|
|
267
|
+
return if replaced_by.nil? || @deprecation_warned
|
|
268
|
+
|
|
269
|
+
@deprecation_warned = true
|
|
270
|
+
Kernel.warn("[mailjet] #{name} is deprecated and will be removed in 2.0.0. Use #{replaced_by} instead.")
|
|
271
|
+
end
|
|
272
|
+
|
|
262
273
|
end
|
|
263
274
|
|
|
264
275
|
attr_accessor :attributes, :persisted
|
|
@@ -3,6 +3,7 @@ module Mailjet
|
|
|
3
3
|
include Mailjet::Resource
|
|
4
4
|
self.resource_path = 'REST/apikeytotals'
|
|
5
5
|
self.public_operations = [:get]
|
|
6
|
+
self.replaced_by = 'Mailjet::Statcounters with counter_source: "APIKey"'
|
|
6
7
|
self.filters = []
|
|
7
8
|
self.resourceprop = [:blocked_count, :bounced_count, :clicked_count, :delivered_count, :last_activity, :opened_count, :processed_count, :queued_count, :spamcomplaint_count, :unsubscribed_count]
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ module Mailjet
|
|
|
3
3
|
include Mailjet::Resource
|
|
4
4
|
self.resource_path = 'REST/campaigngraphstatistics'
|
|
5
5
|
self.public_operations = [:get]
|
|
6
|
+
self.replaced_by = 'Mailjet::Statcounters with counter_source: "Campaign"'
|
|
6
7
|
self.filters = [:click, :ids, :open, :range, :spam, :unsub]
|
|
7
8
|
self.resourceprop = [:click_count, :id, :opencount, :spamcount, :tick, :unsubcount]
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ module Mailjet
|
|
|
3
3
|
include Mailjet::Resource
|
|
4
4
|
self.resource_path = 'REST/campaignstatistics'
|
|
5
5
|
self.public_operations = [:get]
|
|
6
|
+
self.replaced_by = 'Mailjet::Statcounters with counter_source: "Campaign"'
|
|
6
7
|
self.filters = [:blocked, :bounced, :campaign_status, :click, :contacts_list, :from_type, :is_deleted, :is_starred, :last_activity_at, :max_last_activity_at, :min_last_activity_at, :news_letter, :open, :queued, :sender, :sent, :spam, :subject, :unsubscribed]
|
|
7
8
|
self.resourceprop = [:blocked_count, :bounced_count, :campaign, :clicked_count, :delivered_count, :last_activity_at, :news_letter, :opened_count, :processed_count, :queued_count, :spam_complaint_count, :unsubscribed_count]
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ module Mailjet
|
|
|
3
3
|
include Mailjet::Resource
|
|
4
4
|
self.resource_path = 'REST/domainstatistics'
|
|
5
5
|
self.public_operations = [:get]
|
|
6
|
+
self.replaced_by = 'Mailjet::Statistics_recipient_esp'
|
|
6
7
|
self.filters = [:campaign_id, :campaign_status, :contacts_list, :custom_campaign, :from, :from_domain, :from_id, :from_ts, :from_type, :is_deleted, :is_newsletter_tool, :is_starred, :message_status, :period, :to_ts]
|
|
7
8
|
self.resourceprop = [:blocked_count, :bounced_count, :clicked_count, :delivered_count, :domain, :id, :opened_count, :processed_count, :queued_count, :spam_complaint_count, :unsubscribed_count]
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ module Mailjet
|
|
|
3
3
|
include Mailjet::Resource
|
|
4
4
|
self.resource_path = 'REST/graphstatistics'
|
|
5
5
|
self.public_operations = [:get]
|
|
6
|
+
self.replaced_by = 'Mailjet::Statcounters with counter_resolution: "Day" or "Hour"'
|
|
6
7
|
self.filters = [:campaign_id, :campaign_status, :contact, :contacts_list, :custom_campaign, :from, :from_domain, :from_id, :from_ts, :from_type, :is_deleted, :is_newsletter_tool, :is_starred, :message_status, :period, :scale, :to_ts]
|
|
7
8
|
self.resourceprop = [:blocked_count, :bounced_count, :clicked_count, :delivered_count, :opened_count, :processed_count, :queued_count, :ref_timestamp, :sendtime_start, :spamcomplaint_count, :unsubscribed_count]
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ module Mailjet
|
|
|
3
3
|
include Mailjet::Resource
|
|
4
4
|
self.resource_path = 'REST/liststatistics'
|
|
5
5
|
self.public_operations = [:get]
|
|
6
|
+
self.replaced_by = 'Mailjet::Statcounters with counter_source: "List"'
|
|
6
7
|
self.filters = [:address, :calc_active_unsub, :exclude_id, :is_deleted, :name]
|
|
7
8
|
self.resourceprop = [:active_count, :active_unsubscribed_count, :address, :blocked_count, :bounced_count, :clicked_count, :created_at, :delivered_count, :id, :is_deleted, :last_activity_at, :name, :opened_count, :spam_complaint_count, :subscriber_count, :unsubscribed_count]
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ module Mailjet
|
|
|
3
3
|
include Mailjet::Resource
|
|
4
4
|
self.resource_path = 'REST/messagestatistics'
|
|
5
5
|
self.public_operations = [:get]
|
|
6
|
+
self.replaced_by = 'Mailjet::Statcounters with counter_timing: "Message"'
|
|
6
7
|
self.filters = [:campaign_id, :campaign_status, :contact_email, :contact_id, :custom_campaign, :from, :from_domain, :from_id, :from_ts, :from_type, :is_deleted, :is_newsletter_tool, :is_starred, :message_status, :period, :to_ts]
|
|
7
8
|
self.resourceprop = [:average_click_delay, :average_clicked_count, :average_open_delay, :average_opened_count, :blocked_count, :bounced_count, :campaign_count, :clicked_count, :delivered_count, :opened_count, :processed_count, :queued_count, :spam_complaint_count, :transactional_count, :unsubscribed_count]
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ module Mailjet
|
|
|
3
3
|
include Mailjet::Resource
|
|
4
4
|
self.resource_path = 'REST/newsletter'
|
|
5
5
|
self.public_operations = [:get, :put, :post]
|
|
6
|
+
self.replaced_by = 'Mailjet::Campaigndraft'
|
|
6
7
|
self.filters = [:campaign, :contacts_list, :delivered_at, :edit_mode, :is_archived, :is_campaign, :is_deleted, :is_handled, :is_starred, :modified, :news_letter_template, :segmentation, :status, :subject]
|
|
7
8
|
self.resourceprop = [:callback, :campaign, :contacts_list, :created_at, :delivered_at, :edit_mode, :edit_type, :footer, :footer_address, :footer_wysiwyg_type, :header_filename, :header_link, :header_text, :header_url, :id, :ip, :is_handled, :is_starred, :is_text_part_included, :locale, :modified_at, :permalink, :permalink_host, :permalink_wysiwyg_type, :politeness_mode, :reply_email, :segmentation, :segmentation_id, :sender, :sender_email, :sender_name, :status, :subject, :template, :test_address, :title, :url, 'CampaignID', 'CampaignALT', 'ContactsListID', 'ContactsListALT', 'SegmentationID', 'SegmentationALT', :contacts_list_id]
|
|
8
9
|
end
|
|
@@ -4,6 +4,7 @@ module Mailjet
|
|
|
4
4
|
self.action = "detailcontent"
|
|
5
5
|
self.resource_path = "REST/newsletter/id/#{self.action}"
|
|
6
6
|
self.public_operations = [:get, :post]
|
|
7
|
+
self.replaced_by = 'Mailjet::Campaigndraft_detailcontent'
|
|
7
8
|
self.filters = []
|
|
8
9
|
self.resourceprop = [:text_part, :html_part, :headers, :mjml_content]
|
|
9
10
|
|
|
@@ -3,6 +3,7 @@ module Mailjet
|
|
|
3
3
|
include Mailjet::Resource
|
|
4
4
|
self.resource_path = 'REST/openstatistics'
|
|
5
5
|
self.public_operations = [:get]
|
|
6
|
+
self.replaced_by = 'Mailjet::Statcounters with counter_timing: "Message"'
|
|
6
7
|
self.filters = [:campaign_id, :campaign_status, :contacts_list, :custom_campaign, :from, :from_domain, :from_id, :from_ts, :from_type, :is_deleted, :is_newsletter_tool, :is_starred, :message_status, :period, :to_ts]
|
|
7
8
|
self.resourceprop = [:opened_count, :opened_delay, :processed_count]
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ module Mailjet
|
|
|
3
3
|
include Mailjet::Resource
|
|
4
4
|
self.resource_path = 'REST/senderstatistics'
|
|
5
5
|
self.public_operations = [:get]
|
|
6
|
+
self.replaced_by = 'Mailjet::Statcounters with counter_source: "Sender"'
|
|
6
7
|
self.filters = [:domain, :email, :sender]
|
|
7
8
|
self.resourceprop = [:blocked_count, :bounced_count, :clicked_count, :delivered_count, :last_activity_at, :opened_count, :processed_count, :queued_count, :sender, :spam_complaint_count, :unsubscribed_count]
|
|
8
9
|
|
|
@@ -3,7 +3,7 @@ module Mailjet
|
|
|
3
3
|
include Mailjet::Resource
|
|
4
4
|
self.resource_path = 'REST/statcounters'
|
|
5
5
|
self.public_operations = [:get]
|
|
6
|
-
self.filters = [:source_id, :counter_resolution, :counter_source, :counter_timing]
|
|
6
|
+
self.filters = [:source_id, :counter_resolution, :counter_source, :counter_timing, :from_ts, :to_ts]
|
|
7
7
|
self.resourceprop = [
|
|
8
8
|
:api_key_id,
|
|
9
9
|
:event_click_delay,
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module Mailjet
|
|
2
|
+
class Statistics_recipient_esp
|
|
3
|
+
include Mailjet::Resource
|
|
4
|
+
self.resource_path = 'REST/statistics/recipient-esp'
|
|
5
|
+
self.public_operations = [:get]
|
|
6
|
+
self.filters = [:campaign_id, :esp_name]
|
|
7
|
+
self.resourceprop = [
|
|
8
|
+
:attempted_messages_count,
|
|
9
|
+
:click_through_rate,
|
|
10
|
+
:clicked_messages_count,
|
|
11
|
+
:deferred_messages_count,
|
|
12
|
+
:deferred_rate,
|
|
13
|
+
:delivered_messages_count,
|
|
14
|
+
:esp_name,
|
|
15
|
+
:hard_bounced_messages_count,
|
|
16
|
+
:hard_bounced_rate,
|
|
17
|
+
:open_rate,
|
|
18
|
+
:opened_messages_count,
|
|
19
|
+
:soft_bounced_messages_count,
|
|
20
|
+
:soft_bounced_rate,
|
|
21
|
+
:spam_reports_count,
|
|
22
|
+
:spam_reports_rate,
|
|
23
|
+
:unsubscribed_messages_count,
|
|
24
|
+
:unsubscribed_rate,
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
self.read_only = true
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
end
|
data/lib/mailjet/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mailjet
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.9.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tyler Nappy
|
|
8
8
|
- Jean-Baptiste Escoyez
|
|
9
9
|
- Aurélien AMILIN
|
|
10
10
|
- Benoit Bénézech
|
|
11
|
+
autorequire:
|
|
11
12
|
bindir: bin
|
|
12
13
|
cert_chain: []
|
|
13
|
-
date:
|
|
14
|
+
date: 2026-10-23 00:00:00.000000000 Z
|
|
14
15
|
dependencies:
|
|
15
16
|
- !ruby/object:Gem::Dependency
|
|
16
17
|
name: activesupport
|
|
@@ -268,6 +269,7 @@ files:
|
|
|
268
269
|
- lib/mailjet/resources/senderstatistics.rb
|
|
269
270
|
- lib/mailjet/resources/statcounters.rb
|
|
270
271
|
- lib/mailjet/resources/statistics_linkclick.rb
|
|
272
|
+
- lib/mailjet/resources/statistics_recipient_esp.rb
|
|
271
273
|
- lib/mailjet/resources/template.rb
|
|
272
274
|
- lib/mailjet/resources/template_detailcontent.rb
|
|
273
275
|
- lib/mailjet/resources/toplinkclicked.rb
|
|
@@ -305,11 +307,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
305
307
|
- !ruby/object:Gem::Version
|
|
306
308
|
version: '0'
|
|
307
309
|
requirements: []
|
|
308
|
-
rubygems_version: 3.
|
|
310
|
+
rubygems_version: 3.0.3.1
|
|
311
|
+
signing_key:
|
|
309
312
|
specification_version: 4
|
|
310
313
|
summary: Mailjet a powerful all-in-one email service provider clients can use to get
|
|
311
314
|
maximum insight and deliverability results from both their marketing and transactional
|
|
312
315
|
emails. Our analytics tools and intelligent APIs give senders the best understanding
|
|
313
316
|
of how to maximize benefits for each individual contact, with each email sent.
|
|
314
317
|
test_files: []
|
|
315
|
-
...
|