我想了解" config.after_initialize"正在对我的邮件做。我使用我从Devise :: Mailer派生的UserMailer类通过rake任务发送电子邮件。当我使用以下代码时,DKIM标头不存在。如果我删除after_initialize DKIM标头工作。我猜这是初始化问题的顺序,还是我没有设置邮件程序的所有设置?我不确定。有人可以对这一个有所了解,或者我将如何开始调试它?
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
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 <contact@savethesparkles.com>",
reply_to: "contact@savethesparkles.com"
end
答案 0 :(得分:1)
我能够弄清楚发生了什么。删除&#34; config.after_initialize do&#34;允许DKIM标题出现在电子邮件中,以便开始工作。但是,只有在我修复了身份验证问题后,我才遇到与我的环境有关的问题,并且它没有接收环境用户并传递我在/ etc / environment中指定的那个。我的rake任务正在挑选环境变量,但是在Devise控制器中完成的任何身份验证电子邮件都没有获得环境变量。
我在EC2 Ubuntu框中对环境的修复是将一些环境变量切换为.bash_profile。