Action mailer settings and dkim signing


#1

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 S. removed_email_address@domain.invalid”,
reply_to: “removed_email_address@domain.invalid”

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


#2

On Saturday, 14 February 2015 21:17:21 UTC-5, Stephen Burke wrote:

default from: "Save The S. <removed_email_address@domain.invalid
config.action_mailer.default_url_options = { host: ‘savethesparkles.com’ }
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 J.