Ruby on Rails Wednesday, February 18, 2015



On Saturday, 14 February 2015 21:17:21 UTC-5, Stephen Burke wrote:
I am trying to figure out why this block of code in my environments/production.rb file is causing the dkim signing to break.  I have email being sent from a rake task with my UserMailer class.  It is derived from Devise::Mailer.  If I have the action_mailer configuration block within the "config.after_initialize" the dkim signature does not go through.  If I don't have that line "after_initialize" the signature goes through.  Can someone shed some light on this for me?

Here's the code for my UserMailer class and the production.rb file. 

user_mailer.rb

require "#{Rails.root}/app/helpers/user_helper"
include
UserHelper

class UserMailer < Devise::Mailer
  helper
:application # gives access to all helpers defined within `application_helper`.
  include
Devise::Controllers::UrlHelpers # Optional. eg. `confirmation_url`
 
default from: "Save The Sparkles <con...@savethesparkles.com>",
  reply_to
: "con...@savethesparkles.com"
 
...
end


environments/production.rb 

config.action_mailer.asset_host     = 'http://savethesparkles.com'

config
.action_mailer.default_url_options = { host: 'savethesparkles.com' }
config
.after_initialize do
  config
.action_mailer.perform_deliveries = true
  config
.action_mailer.raise_delivery_errors = true
  config
.action_mailer.delivery_method = :smtp
  config
.action_mailer.smtp_settings = {
    address
:              'email-smtp.us-east-1.amazonaws.com',
    port
:                 587,
    domain
:               'savethesparkles.com',
    user_name
:            ENV['AWS_SES_USER'],
    password
:             ENV['AWS_SES_PASS'],
    authentication
:       :login,
    enable_starttls_auto
: true
 
}
end


The documentation for Rails::Railtie::Configuration describes after_initialize as the "last configurable block to run, called after frameworks initialize". ActionMailer's own initialization routine copies the values from config.action_mailer *before* the code above sets them. So the behavior you've described makes sense.

A better question is, why is having after_initialize here important? What's the intent?

--Matt Jones

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/cd54be92-1652-4b2b-9199-8371a70c8581%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment