mailtrap 2.1.1 → 2.1.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: 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