action mailer settings and dkim signing

103 views
Skip to first unread message

Stephen Burke

unread,
Feb 14, 2015, 9:17:21 PM2/14/15
to rubyonra...@googlegroups.com
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


Matt Jones

unread,
Feb 18, 2015, 9:19:04 PM2/18/15
to rubyonra...@googlegroups.com
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
Reply all
Reply to author
Forward
0 new messages