| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Email does not support relative links since there is no implicit host. Therefore all links inside of emails must be fully qualified URLs. All path helpers are now deprecated. When removed, the error will give early indication to developers to use `*_url` methods instead.
Currently if a developer uses a `*_path` helper, their tests and `mail_view` will not catch the mistake. The only way to see the error is by sending emails in production. Preventing sending out emails with non-working path's is the desired end goal of this PR.
Currently path helpers are mixed-in to controllers (the ActionMailer::Base acts as a controller). All `*_url` and `*_path` helpers are made available through the same module. This PR separates this behavior into two modules so we can extend the `*_path` methods to add a Deprecation to them. Once deprecated we can use this same area to raise a NoMethodError and add an informative message directing the developer to use `*_url` instead.
The module with warnings is only mixed in when a controller returns false from the newly added `supports_relative_path?`.
Paired @sgrif & @schneems
|
|
|
|
|
|
|
|
|
| |
Closes #16163
Adding attachments after a call to `mail` will result in invalid emails.
This is related to the fact, that `mail` is making the required preparations
before the email is ready to be sent. These change depending on your
added attachments.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds `config.action_mailer.preview_enabled`
This allows mail previewing to be enabled easily in non-development
environments such as staging. The default is set to true for development
so no changes should be required to existing Rails applications.
The mail preview path can still be configured using the existing
`config.action_mailer.preview_path` configuration option.
Adding this avoids devs from having to do stuff like:
https://gist.github.com/lengarvey/fa2c9bd6cdbeba96526a
Update actionmailer/CHANGELOG with new configuration.
Update configuring guide with new configuratation.
Add `config.action_mailer.preview_path` to configuring guide.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was partially broken because `preview_interceptors=` just assigned the
raw values, whithout going through `register_preview_interceptor`. Now the
Action Mailer railtie takes care of the `preview_interceptors` option.
This commit is a partial revert of:
Revert "Merge pull request #15739 from y-yagi/correct_doc_for_action_mailer_base"
This reverts commit a15704d7f35f17d34d0118546799141d6f853656, reversing
changes made to 1bd12a8609d275ad75fcc4b622ca4f5b32dc76be.
/cc @kuldeepaggarwal @y-yagi
|
|
|
|
| |
Remove 4-1 related entries from master [ci skip]
|
| |
|
|
|
|
|
|
| |
We allow the use of underscored symbols to represent classes throughout
other parts of Rails so it seems incongruous that it's not supported in
`register_interceptor` and `register_observer`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To support the ability for tools like CSS style inliners to operate on emails
being previewed this commit adds a hook in a similar fashion to the existing
delivery interceptor hook, e.g:
class CSSInlineStyler
def self.previewing_email(message)
# inline CSS styles
end
end
ActionMailer::Base.register_preview_interceptor CSSInlineStyler
Fixes #13622.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This behavior is documented in our guides (http://edgeguides.rubyonrails.org/action_mailer_basics.html#action-mailer-callbacks)
but was broken in the past. This commit short curcuits
the `mail` method if:
1. mail() was previously called
2. no headers are passed
3. no block is passed
Closes #13090.
/cc @pixeltrix
|
|
|
|
|
| |
Also make Action Mailer changelog format more consistent with the
others [ci skip]
|
|
|
|
|
|
| |
The processing of outbound mail is instrumented with the key
`process.action_mailer`. The payload includes the mailer name as well as
the mailer method.
|
|
|
|
|
|
| |
Invoke mailer defaults as procs only if they are procs, do not convert
with to_proc. That an object is convertible to a proc does not mean it's
meant to be always used as a proc. Fixes #11533
|
|
|
|
| |
[ci skip]
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
# config/locales/en.yml
en:
user_mailer:
welcome:
subject: 'Hello, %{username}'
# app/mailers/user_mailer.rb
class UserMailer < ActionMailer::Base
def welcome(user)
mail(subject: default_i18n_subject(username: user.name))
end
end
|
|\
| |
| | |
Correct source for in_clause_length for eager loading (Fix for #8474)
|
| |
| |
| |
| | |
(fixes #8474)
|
|/
|
|
| |
with Rails 4.0.
|
|
|
|
| |
Also some minor improvements to other changelogs. [ci skip]
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
As issue #7978, the order in which ActionMailer
sends multipart messages could be unintentionally
overwritten if a block is passed to the mail
method. This changes the mail method such that
:parts_order is always respected, regardless of
whether a block is passed to mail.
|
|
|
|
|
|
|
|
|
|
|
|
| |
`Mailer.foo(*args).deliver`."
This reverts commit 7e0cf563639bc7508da381b1b8321c7a89be1aa8.
Conflicts:
actionmailer/CHANGELOG.md
See discussion at
https://github.com/rails/rails/commit/7e0cf563639bc7508da381b1b8321c7a89be1aa8#commitcomment-2075489
|
| |
|
| |
|
|
|
|
|
|
|
| |
`Mailer.foo(*args).deliver`.
This makes it easy to write e.g. `Mailer.expects(:deliver_foo)` when
testing code that calls the mailer.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Changes in old branches needed to be manually synched in CHANGELOGs of newer ones.
This has proven to be brittle, sometimes one just forgets this manual step.
With this commit we switch to CHANGELOGs per branch. When a new major version is
cut from master, the CHANGELOGs in master start being blank.
A link to the CHANGELOG of the previous branch allows anyone interested to
follow the history.
|
| |
|
|
|
|
|
|
| |
Reverting because it feels backward to specify a delivery to not
be performed while the e-mail is being composed. It is simpler (and
makes more sense) to delegate the responsibility to the calling code.
|
| |
|
|
|
|
| |
[ci skip]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allows to easily set :from, :replay_to, etc. options in
config/application.rb using simple syntax:
config.action_mailer.default_options = {from:"no-replay@example.org"}
This was not possible using #default method because
config.action_mailer.default(from: "no-replay@example.org")
is interpreated as reader method and just returns nil.
It would not call ActionMailer::Base.default method. The only
way of calling this method from config/application.rb was to use
the direct syntax which looks ugly in my opinion:
config.assets.enabled = false
config.assets.version = '1.0'
config.encoding = "utf-8"
config.action_mailer.default_url_options= {
host:"example.org",
protocol:"https"
}
ActionMailer::Base.default(from: "no-replay@example.org")
|
| |
|
| |
|
| |
|