mailtrap 2.1.1 → 2.1.2

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: 30f80c3c771f5d73e22d3731d3f8d619793be03b378f48251e0e17e0e33d5d60
4
- data.tar.gz: 41523de1f211b8ef4900efe6abd2343afb67803921fe495372c1d780d5b0f6fa
3
+ metadata.gz: 314cfc7c3cd8a6e45f719fc3d8063a5ca9d9cb96109989d558699460c5246735
4
+ data.tar.gz: 6db332cea7a1c9e8409c22a47145b74b9a5a45d74cc34a3663bc138fd7bf52a7
5
5
  SHA512:
6
- metadata.gz: 781f8682fec57e56274d6de148bf24cc2d21ae8582e31a00585eaceb15481cf8b8508f9f1ba7f32b54e71c3c18b5062a6f2be407f5e14df0b78b5038a1086e9e
7
- data.tar.gz: 1f22fc8e1c76efb7e0050d68b731ea0ceba6a65a8d37cea1da72369d41287f657492e005683648b1b7279e15e059f6c14a4ec724015763f2d212bde1407dd097
6
+ metadata.gz: 9d86a290cd93fea1c62a5bf5c5ee1d32a49bf23bd9736edf1d4cffe5d1c40d474b62cda3741deb388ff24e937eb036ce618605155f5b7e66f4a95918d400315e
7
+ data.tar.gz: 51548a285463a11ef0c408f9cb03d2621bb0ede07c75c63773218a85616fcd727724b15687389350fdaf4907f6c173a95fee1d17d4648c5f0d315817acf7bbec
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
+ ## [2.1.2] - 2024-12-13
2
+
3
+ - Improved handling of invalid `from`, `to`, `cc`, `bcc` headers when sending
4
+ with Action Mailer
5
+
1
6
  ## [2.1.1] - 2024-12-11
2
7
 
3
- - Improved handling of empty `from`
8
+ - Improved handling of empty `from` header when sending with Action Mailer
4
9
 
5
10
  ## [2.1.0] - 2024-07-08
6
11
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mailtrap (2.1.1)
4
+ mailtrap (2.1.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/lib/mailtrap/mail.rb CHANGED
@@ -4,10 +4,13 @@ require 'base64'
4
4
 
5
5
  require_relative 'mail/base'
6
6
  require_relative 'mail/from_template'
7
+ require_relative 'errors'
7
8
 
8
9
  module Mailtrap
9
10
  module Mail
10
11
  class << self
12
+ # @param message [Mail::Message]
13
+ # @return [Mailtrap::Mail::Base]
11
14
  def from_message(message) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
12
15
  Mailtrap::Mail::Base.new(
13
16
  from: prepare_addresses(address_list(message['from'])&.addresses).first,
@@ -50,10 +53,19 @@ module Mailtrap
50
53
 
51
54
  HEADERS_TO_REMOVE = (SPECIAL_HEADERS + ACTIONMAILER_ADDED_HEADERS).freeze
52
55
 
56
+ # @param header [Mail::Field, nil]
57
+ # @return [Mail::AddressList, nil]
53
58
  def address_list(header)
54
- header.respond_to?(:element) ? header.element : header&.address_list
59
+ return nil unless header
60
+
61
+ unless header.errors.empty?
62
+ raise Mailtrap::Error, ["failed to parse '#{header.name}': '#{header.unparsed_value}'"]
63
+ end
64
+
65
+ header.respond_to?(:element) ? header.element : header.address_list
55
66
  end
56
67
 
68
+ # @param addresses [Array<Mail::Address>, nil]
57
69
  def prepare_addresses(addresses)
58
70
  Array(addresses).map { |address| prepare_address(address) }
59
71
  end
@@ -66,6 +78,7 @@ module Mailtrap
66
78
  .compact
67
79
  end
68
80
 
81
+ # @param address [Mail::Address]
69
82
  def prepare_address(address)
70
83
  {
71
84
  email: address.address,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mailtrap
4
- VERSION = '2.1.1'
4
+ VERSION = '2.1.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailtrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Railsware Products Studio LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-11 00:00:00.000000000 Z
11
+ date: 2024-12-13 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Official mailtrap.io API client
14
14
  email:
@@ -62,7 +62,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
62
62
  - !ruby/object:Gem::Version
63
63
  version: '0'
64
64
  requirements: []
65
- rubygems_version: 3.4.10
65
+ rubygems_version: 3.5.11
66
66
  signing_key:
67
67
  specification_version: 4
68
68
  summary: Official mailtrap.io API client