hanami-mailer 1.3.1 → 1.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +2 -1
- data/hanami-mailer.gemspec +1 -1
- data/lib/hanami/mailer.rb +3 -2
- data/lib/hanami/mailer/dsl.rb +64 -6
- data/lib/hanami/mailer/rendering/template_name.rb +1 -1
- data/lib/hanami/mailer/template.rb +2 -2
- data/lib/hanami/mailer/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c6d1550998953f3d5e03031b550d543559c5be86ffd4f1c523062d497a2ccc5
|
4
|
+
data.tar.gz: b8405f76831e172ad647ec01ac9a139a7b9e0542db64443715ea5e8bdda2b3eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4fcb959ad5f4e8f2c6e8a1605a48dce7d07ec781dca766d7127989b6e2ec9485ae2f82321ec0ff38f07f7313bdc29474437771045d84d7e1b85a432ad53d763c
|
7
|
+
data.tar.gz: 3daf620d72aff005141b9954ef526406c4f522894b0f5bad7a39f2193c40ddfffbecc553c171a70c87615528a4b8eafbdf3dea312ec49553874ec2b00d624b1c
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
# Hanami::Mailer
|
2
2
|
Mail for Ruby applications
|
3
3
|
|
4
|
+
## v1.3.2 - 2020-02-03
|
5
|
+
### Added
|
6
|
+
- [Luca Guidi] Official support for Ruby: MRI 2.7
|
7
|
+
- [glaszig] Added `Hanami::Mailer.return_path` and `#return_path` to specify `MAIL FROM` address
|
8
|
+
|
4
9
|
## v1.3.1 - 2019-01-18
|
5
10
|
### Added
|
6
11
|
- [Luca Guidi] Official support for Ruby: MRI 2.6
|
data/README.md
CHANGED
@@ -5,7 +5,7 @@ Mail for Ruby applications.
|
|
5
5
|
## Status
|
6
6
|
|
7
7
|
[![Gem Version](https://badge.fury.io/rb/hanami-mailer.svg)](https://badge.fury.io/rb/hanami-mailer)
|
8
|
-
[![
|
8
|
+
[![Build Status](https://ci.hanamirb.org/api/badges/hanami/mailer/status.svg)](https://ci.hanamirb.org/hanami/mailer)
|
9
9
|
[![CircleCI](https://circleci.com/gh/hanami/mailer/tree/master.svg?style=svg)](https://circleci.com/gh/hanami/mailer/tree/master)
|
10
10
|
[![Test Coverage](https://codecov.io/gh/hanami/mailer/branch/master/graph/badge.svg)](https://codecov.io/gh/hanami/mailer)
|
11
11
|
[![Depfu](https://badges.depfu.com/badges/739c6e10eaf20d3ba4240d00828284db/overview.svg)](https://depfu.com/github/hanami/mailer?project=Bundler)
|
@@ -80,6 +80,7 @@ end.load!
|
|
80
80
|
class WelcomeMailer
|
81
81
|
include Hanami::Mailer
|
82
82
|
|
83
|
+
return_path 'bounce@sender.com'
|
83
84
|
from 'noreply@sender.com'
|
84
85
|
to 'noreply@recipient.com'
|
85
86
|
cc 'cc@sender.com'
|
data/hanami-mailer.gemspec
CHANGED
@@ -24,6 +24,6 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_dependency 'mail', '~> 2.6'
|
25
25
|
|
26
26
|
spec.add_development_dependency 'bundler', '>= 1.6', '< 3'
|
27
|
-
spec.add_development_dependency 'rake', '~>
|
27
|
+
spec.add_development_dependency 'rake', '~> 13'
|
28
28
|
spec.add_development_dependency 'rspec', '~> 3.7'
|
29
29
|
end
|
data/lib/hanami/mailer.rb
CHANGED
@@ -223,8 +223,8 @@ module Hanami
|
|
223
223
|
# @api private
|
224
224
|
def deliver
|
225
225
|
mail.deliver
|
226
|
-
rescue ArgumentError =>
|
227
|
-
raise MissingDeliveryDataError if
|
226
|
+
rescue ArgumentError => exception
|
227
|
+
raise MissingDeliveryDataError if exception.message =~ /SMTP (From|To) address/
|
228
228
|
|
229
229
|
raise
|
230
230
|
end
|
@@ -284,6 +284,7 @@ module Hanami
|
|
284
284
|
# rubocop:disable Metrics/AbcSize
|
285
285
|
def build
|
286
286
|
Mail.new.tap do |m|
|
287
|
+
m.return_path = __dsl(:return_path)
|
287
288
|
m.from = __dsl(:from)
|
288
289
|
m.to = __dsl(:to)
|
289
290
|
m.cc = __dsl(:cc)
|
data/lib/hanami/mailer/dsl.rb
CHANGED
@@ -11,12 +11,13 @@ module Hanami
|
|
11
11
|
# @api private
|
12
12
|
def self.extended(base)
|
13
13
|
base.class_eval do
|
14
|
-
@from
|
15
|
-
@to
|
16
|
-
@cc
|
17
|
-
@bcc
|
18
|
-
@reply_to
|
19
|
-
@
|
14
|
+
@from = nil
|
15
|
+
@to = nil
|
16
|
+
@cc = nil
|
17
|
+
@bcc = nil
|
18
|
+
@reply_to = nil
|
19
|
+
@return_path = nil
|
20
|
+
@subject = nil
|
20
21
|
end
|
21
22
|
end
|
22
23
|
|
@@ -86,6 +87,63 @@ module Hanami
|
|
86
87
|
end
|
87
88
|
end
|
88
89
|
|
90
|
+
# Sets the MAIL FROM address for mail messages.
|
91
|
+
# This lets you specify a "bounce address" different from the sender
|
92
|
+
# address specified with `from`.
|
93
|
+
#
|
94
|
+
# It accepts a hardcoded value as a string, or a symbol that represents
|
95
|
+
# an instance method for more complex logic.
|
96
|
+
#
|
97
|
+
# This value is optional.
|
98
|
+
#
|
99
|
+
# When a value is given, specify the MAIL FROM address of the email
|
100
|
+
# Otherwise, it returns the MAIL FROM address of the email
|
101
|
+
#
|
102
|
+
# This is part of a DSL, for this reason when this method is called with
|
103
|
+
# an argument, it will set the corresponding class variable. When
|
104
|
+
# called without, it will return the already set value, or the default.
|
105
|
+
#
|
106
|
+
# @overload return_path(value)
|
107
|
+
# Sets the MAIL FROM address
|
108
|
+
# @param value [String, Symbol] the hardcoded value or method name
|
109
|
+
# @return [NilClass]
|
110
|
+
#
|
111
|
+
# @overload return_path
|
112
|
+
# Returns the MAIL FROM address
|
113
|
+
# @return [String, Symbol] the MAIL FROM address
|
114
|
+
#
|
115
|
+
# @since 1.3.2
|
116
|
+
#
|
117
|
+
# @example Hardcoded value (String)
|
118
|
+
# require 'hanami/mailer'
|
119
|
+
#
|
120
|
+
# class WelcomeMailer
|
121
|
+
# include Hanami::Mailer
|
122
|
+
#
|
123
|
+
# return_path "bounce@example.com"
|
124
|
+
# end
|
125
|
+
#
|
126
|
+
# @example Method (Symbol)
|
127
|
+
# require 'hanami/mailer'
|
128
|
+
#
|
129
|
+
# class WelcomeMailer
|
130
|
+
# include Hanami::Mailer
|
131
|
+
# return_path :bounce_address
|
132
|
+
#
|
133
|
+
# private
|
134
|
+
#
|
135
|
+
# def bounce_address
|
136
|
+
# "bounce@example.com"
|
137
|
+
# end
|
138
|
+
# end
|
139
|
+
def return_path(value = nil)
|
140
|
+
if value.nil?
|
141
|
+
@return_path
|
142
|
+
else
|
143
|
+
@return_path = value
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
89
147
|
# Sets the sender for mail messages
|
90
148
|
#
|
91
149
|
# It accepts a hardcoded value as a string, or a symbol that represents
|
@@ -9,8 +9,8 @@ module Hanami
|
|
9
9
|
#
|
10
10
|
# TODO this is identical to Hanami::View, consider to move into Hanami::Utils
|
11
11
|
class Template
|
12
|
-
def initialize(template)
|
13
|
-
@_template = Tilt.new(template)
|
12
|
+
def initialize(template, encoding = Encoding::UTF_8)
|
13
|
+
@_template = Tilt.new(template, default_encoding: encoding)
|
14
14
|
end
|
15
15
|
|
16
16
|
# Render the template within the context of the given scope.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hanami-mailer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luca Guidi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hanami-utils
|
@@ -84,14 +84,14 @@ dependencies:
|
|
84
84
|
requirements:
|
85
85
|
- - "~>"
|
86
86
|
- !ruby/object:Gem::Version
|
87
|
-
version: '
|
87
|
+
version: '13'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
90
|
version_requirements: !ruby/object:Gem::Requirement
|
91
91
|
requirements:
|
92
92
|
- - "~>"
|
93
93
|
- !ruby/object:Gem::Version
|
94
|
-
version: '
|
94
|
+
version: '13'
|
95
95
|
- !ruby/object:Gem::Dependency
|
96
96
|
name: rspec
|
97
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -144,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
144
144
|
- !ruby/object:Gem::Version
|
145
145
|
version: '0'
|
146
146
|
requirements: []
|
147
|
-
rubygems_version: 3.
|
147
|
+
rubygems_version: 3.1.2
|
148
148
|
signing_key:
|
149
149
|
specification_version: 4
|
150
150
|
summary: Mail for Ruby applications.
|