mailkube 1.1.0 → 1.2.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/LICENSE +1 -1
- data/NOTICE +1 -4
- data/README.md +7 -1
- data/lib/mailkube/events/contexts.rb +11 -2
- data/lib/mailkube/version.rb +1 -1
- data/sig/mailkube/events/contexts.rbs +3 -2
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 11e623e291d499bfa611c9eb8e4e768b8a93dbffafe84422dfc0692f0e4c719a
|
|
4
|
+
data.tar.gz: 2f945465f2bb22cd7633aeb05901f53a48311d41c748c216264c8862720f50bc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4d02cc6a359397afb79581541156aa4f6774b7f187c798d63d4e3e2923024e095d40c5d7676c5024b6b319bffc28bec7ed9c89be98d668c8300ae6c5b5155ac2
|
|
7
|
+
data.tar.gz: 4ee50cef68dfaaae7a8dacc2c76ab6b6bb02e5fbaa4f642014c6224ce45ba90d8e72558a98a1ee009b480cc6b0711b185d6a4fb58f4bcb60f48e454bc365c32e
|
data/LICENSE
CHANGED
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
|
187
187
|
identification within third-party archives.
|
|
188
188
|
|
|
189
|
-
Copyright 2026
|
|
189
|
+
Copyright 2026 Mail Tactic Corporation
|
|
190
190
|
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
192
|
you may not use this file except in compliance with the License.
|
data/NOTICE
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
mailkube-ruby
|
|
2
|
-
Copyright 2026
|
|
2
|
+
Copyright 2026 Mail Tactic Corporation
|
|
3
3
|
|
|
4
4
|
This product is licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
you may not use this product except in compliance with the License. You may
|
|
6
6
|
obtain a copy of the License at:
|
|
7
7
|
|
|
8
8
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
|
|
10
|
-
"mailkube" is a trademark of Mailtactic, Corp. Use of the name is governed by
|
|
11
|
-
Section 6 (Trademarks) of the License.
|
data/README.md
CHANGED
|
@@ -240,6 +240,12 @@ implement it.
|
|
|
240
240
|
Every `email.*` payload also carries the message context: `email_id`, `created_at`, `domain`,
|
|
241
241
|
`subject`, `to`, `from` and `tags`.
|
|
242
242
|
|
|
243
|
+
On the `data.open` and `data.click` blocks, `ip_address`, `country` and `user_agent` are recorded
|
|
244
|
+
only where the sending domain has elected them, and both settings are off by default. The server
|
|
245
|
+
omits the key rather than sending an empty value, so the accessor returns `nil` when it was not
|
|
246
|
+
recorded. `country` can be `nil` even where the address was recorded, because it is resolved at the
|
|
247
|
+
edge and is not available on every path.
|
|
248
|
+
|
|
243
249
|
Two guarantees hold for every released version, so a platform change never breaks a running
|
|
244
250
|
receiver:
|
|
245
251
|
|
|
@@ -336,4 +342,4 @@ must pass. Security issues: see [SECURITY.md](SECURITY.md).
|
|
|
336
342
|
|
|
337
343
|
## License
|
|
338
344
|
|
|
339
|
-
[Apache-2.0](LICENSE) © 2026
|
|
345
|
+
[Apache-2.0](LICENSE) © 2026 Mail Tactic Corporation
|
|
@@ -63,10 +63,19 @@ module Mailkube
|
|
|
63
63
|
# These nested keys are camelCase on the wire, unlike every other block here. The SDK mirrors
|
|
64
64
|
# the server rather than normalizing it.
|
|
65
65
|
class EngagementContext < Node
|
|
66
|
-
#
|
|
66
|
+
# The three connection accessors return nil unless the sending domain elected to record the
|
|
67
|
+
# field, which is off by default. The server omits the key rather than sending a blank, so
|
|
68
|
+
# nil here means "the sender did not record this" and never "the sender recorded an empty
|
|
69
|
+
# value".
|
|
70
|
+
#
|
|
71
|
+
# @return [String, nil] the opening client's IP address (wire key `ipAddress`).
|
|
67
72
|
def ip_address = self["ipAddress"]
|
|
68
|
-
# @return [String] the opening client's user agent (wire key `userAgent`).
|
|
73
|
+
# @return [String, nil] the opening client's user agent (wire key `userAgent`).
|
|
69
74
|
def user_agent = self["userAgent"]
|
|
75
|
+
# Elected together with {#ip_address}, but can still be nil when the address was recorded:
|
|
76
|
+
# it is resolved at the edge and is not available on every path.
|
|
77
|
+
# @return [String, nil] the two-letter country the address resolves to.
|
|
78
|
+
def country = self["country"]
|
|
70
79
|
# @return [String] when the interaction was recorded.
|
|
71
80
|
def timestamp = self["timestamp"]
|
|
72
81
|
end
|
data/lib/mailkube/version.rb
CHANGED
|
@@ -11,5 +11,5 @@ module Mailkube
|
|
|
11
11
|
# semantic-release rewrites this line **in the release runner** just before the gem is built, and
|
|
12
12
|
# commits nothing back to `main` (see `.rules/RELEASE.md`). So a checkout reports `0.0.0` and an
|
|
13
13
|
# installed gem reports the real version: that is intended, not a bug to fix by hardcoding one.
|
|
14
|
-
VERSION = "1.
|
|
14
|
+
VERSION = "1.2.0"
|
|
15
15
|
end
|
|
@@ -22,8 +22,9 @@ module Mailkube
|
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
class EngagementContext < Node
|
|
25
|
-
def ip_address: () -> String
|
|
26
|
-
def user_agent: () -> String
|
|
25
|
+
def ip_address: () -> String?
|
|
26
|
+
def user_agent: () -> String?
|
|
27
|
+
def country: () -> String?
|
|
27
28
|
def timestamp: () -> String
|
|
28
29
|
end
|
|
29
30
|
|
metadata
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mailkube
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
-
|
|
7
|
+
- Mail Tactic Corporation
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|