aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailer/lib
Commit message (Collapse)AuthorAgeFilesLines
* Start Rails 5 development :tada:Rafael Mendonça França2014-11-281-3/+3
| | | | | | | We will support only Ruby >= 2.1. But right now we don't accept pull requests with syntax changes to drop support to Ruby 1.9.
* Update docs to reflect changes to MailerGenerator.Guo Xiang Tan2014-11-251-11/+17
|
* Removing unnecessary File.join callsAndy Jeffries2014-11-241-1/+1
|
* Creates an ApplicationMailer and layout by default, including html and body ↵Andy Jeffries2014-11-213-2/+6
| | | | tags to reduce spam score
* Prepare for 4.2.0.beta4 releaseGodfrey Chan2014-10-301-1/+1
|
* edit pass over all warningsXavier Noria2014-10-281-4/+4
| | | | | | | | | | | | | | | This patch uniformizes warning messages. I used the most common style already present in the code base: * Capitalize the first word. * End the message with a full stop. * "Rails 5" instead of "Rails 5.0". * Backticks for method names and inline code. Also, converted a few long strings into the new heredoc convention.
* let's warn with heredocsXavier Noria2014-10-281-4/+13
| | | | | | | | | | | | The current style for warning messages without newlines uses concatenation of string literals with manual trailing spaces where needed. Heredocs have better readability, and with `squish` we can still produce a single line. This is a similar use case to the one that motivated defining `strip_heredoc`, heredocs are super clean.
* Making the actionmailer docs more explicit to understand [ci skip]Rishi Jain2014-10-262-3/+6
|
* [ci skip] add :queue option to deliver_later and deliver_later! documentationyuuji.yaginuma2014-10-191-0/+2
|
* [ci skip] Fix word wrap, capitalization, and spacing of text from #17284Zachary Scott2014-10-181-4/+5
|
* [ci skip] Add a note about headers overwritingNicolas Cavigneaux2014-10-181-5/+21
| | | | | | | | | Since some headers can appear multiple times in an email it's required to set it to nil first when you want to overwrite an existing one. This commit add some information about this process. Fix #15912
* Only include the needed assertionsRafael Mendonça França2014-10-071-1/+2
|
* fix tests on action_mailerschneems2014-10-071-1/+1
| | | Include appropriate helpers and use `assert_dom_equal` where applicable
* Preparing for 4.2.0.beta2 releaseRafael Mendonça França2014-09-261-1/+1
|
* Allow attaching files while the mail view is renderedChristian Felder (masone)2014-09-222-2/+3
|
* Rename remaining :in / :at to :wait / :wait_untilCristian Bica2014-09-041-12/+9
|
* Active Job refactoringCristian Bica2014-09-031-9/+4
|
* [ci skip] Fix a typo in the doc of MessageDeliveryyuuji.yaginuma2014-09-021-3/+3
|
* Refer to the library name instead of the constantRobin Dupret2014-08-301-1/+1
| | | | | | | | | When we are loading a component and we want to know its version, we are actually not speaking about the constant but the library itself. [ci skip] [Godfrey Chan & Xavier Noria]
* Merge branch 'master' of github.com:rails/railsDavid Heinemeier Hansson2014-08-295-30/+109
|\
| * Merge pull request #16598 from seuros/masterMatthew Draper2014-08-231-0/+1
| |\ | | | | | | [ActionMailer] require activejob railtie
| | * [ActionMailer] require activejob railtieAbdelkader Boudih2014-08-221-0/+1
| | |
| * | applies API guidelines to new AM docsXavier Noria2014-08-212-32/+32
| |/
| * [Rdoc] Make clear that we are sending an AR object [ci skip]Abdelkader Boudih2014-08-202-16/+16
| |
| * Fix typo in rdoc [ci skip]Abdelkader Boudih2014-08-202-16/+16
| |
| * Updated rdoc / guides / release notes related to ActiveJob / ActionMailerCristian Bica2014-08-204-34/+92
| |
| * Deprecated .deliver / .deliver! to .deliver_now / .deliver_now!Cristian Bica2014-08-201-2/+22
| |
* | Preparing for 4.2.0.beta1 releaseDavid Heinemeier Hansson2014-08-191-1/+1
|/
* Add `set_delivery_method` and `restore_delivery_method` to ↵Lucas Mazza2014-08-191-0/+9
| | | | | | | | `ActionMailer::TestCase`. This way these methods are available outside the ActionMailer test suite, but they are still duplicated inside `test/abstract_unit` for test cases that don't inherit from the `ActionMailer::TestCase` class.
* Merge branch 'master' into loofahRafael Mendonça França2014-08-175-2/+66
|\ | | | | | | | | Conflicts: actionpack/CHANGELOG.md
| * [ActionMailer] Rename ActionMailer::DelayedDeliveryJob to ↵Abdelkader Boudih2014-08-173-4/+6
| | | | | | | | ActionMailer::DeliveryJob
| * Fixed indentationCristian Bica2014-08-161-1/+1
| |
| * Removed method missing from ActionMailer::MessageDeliveryCristian Bica2014-08-152-4/+4
| |
| * Refactor DeliverLater into MessageDeliveryAbdelkader Boudih2014-08-147-73/+62
| |
| * Make ActionMailer::Previews methods class methods.Abdelkader Boudih2014-08-141-0/+2
| |
| * Added ActionMailer::DeliverLaterAbdelkader Boudih2014-08-135-1/+72
| |
* | Merge branch 'master' into loofahRafael Mendonça França2014-08-123-14/+36
|\| | | | | | | | | | | | | Conflicts: actionpack/CHANGELOG.md actionpack/test/controller/integration_test.rb actionview/CHANGELOG.md
| * Deprecate `*_path` methods in mailers@schneems and @sgrif2014-07-302-1/+6
| | | | | | | | | | | | | | | | | | | | | | 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
| * Raise an exception when attachments are added after `mail` was called.Yves Senn2014-07-291-1/+16
| | | | | | | | | | | | | | | | | | 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.
| * Prefer to pass block when logging.Guo Xiang Tan2014-07-181-11/+13
| | | | | | | | | | | | | | | | The Logger by default includes a guard which checks for the logging level. By removing the custom logging guards, we can decouple the logging guard from the logging action to be done. This also follows the good practice listed on http://guides.rubyonrails.org/debugging_rails_applications.html#impact-of-logs-on-performance.
| * Fix typos like `a html` to `an html` and 'an mail' to 'an email'. [ci skip]Santosh Wadghule2014-07-141-1/+1
| |
* | Include the selector assertions on the test caseRafael Mendonça França2014-07-151-0/+2
| | | | | | | | | | We don't need to require users to include this module on ActionMailer::TestCase
* | Merge pull request #11218 from kaspth/loofah-integrationRafael Mendonça França2014-07-101-3/+2
|\ \ | |/ |/| | | | | | | | | | | Loofah-integration Conflicts: actionpack/CHANGELOG.md actionview/CHANGELOG.md
| * Restore delivery method on teardowns.Timm2014-06-161-3/+2
| |
* | Rename preview_enabled option to show_previewsRafael Mendonça França2014-07-012-7/+7
| |
* | Add configuration to enable mail previewsLeonard Garvey2014-07-012-1/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge pull request #15815 from DNNX/mail-helper-refactoringRafael Mendonça França2014-06-191-2/+2
|\ \ | | | | | | Remove unused block parameter from #gsub call in AM::MailHelper#block_format
| * | Remove unused block parameter from #gsub call in AM::MailHelper#block_formatViktar Basharymau2014-06-191-2/+2
| | |
* | | Add `logger.debug?` guard to `ActionMailer::LogSubscriber#process`Viktar Basharymau2014-06-191-0/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | *TLDR*: The method is 4 times faster when log level is higher than DEBUG. Also, the other two methods, `#deliver` and `#receive` have similar guard statements, so this commit adds some symmetry to the code. This is probably not the most critical part of ActionMailer in terms of performance, but here are some benchmarks: ``` require 'benchmark/ips' require 'action_mailer' event = ActiveSupport::Notifications::Event.new( 'process.action_mailer', Time.now, Time.now, 'bf4e2b36ce085fd35b24', { mailer: "UserMailer", action: :welcome } ) ActionMailer::Base.logger = ActiveSupport::Logger.new '/dev/null' subscriber = ActionMailer::LogSubscriber.new def subscriber.process_with_guard(event) return unless logger.debug? mailer = event.payload[:mailer] action = event.payload[:action] debug("\n#{mailer}##{action}: processed outbound mail in #{event.duration.round(1)}ms") end Benchmark.ips do |r| ActionMailer::Base.logger.level = ::Logger::Severity::INFO r.report('no guard') { subscriber.process(event) } r.report(' guard') { subscriber.process_with_guard(event) } end __END__ Calculating ------------------------------------- no guard 9640 i/100ms guard 38381 i/100ms ------------------------------------------------- no guard 169166.9 (±10.2%) i/s - 838680 in 5.007262s guard 728184.9 (±9.6%) i/s - 3607814 in 4.999218s ``` When log level is DEBUG, the _guarded_ method is a bit slower. This is a good tradeoff for 4x improvement in production mode. ``` Benchmark.ips do |r| ActionMailer::Base.logger.level = ::Logger::Severity::DEBUG r.report('no guard') { subscriber.process(event) } r.report(' guard') { subscriber.process_with_guard(event) } end __END__ Calculating ------------------------------------- no guard 4970 i/100ms guard 4564 i/100ms ------------------------------------------------- no guard 55617.4 (±3.5%) i/s - 278320 in 5.010523s guard 49452.1 (±5.6%) i/s - 251020 in 5.093358s ```
* | allow preview interceptors to be registered through `config.action_mailer`.Yves Senn2014-06-152-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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