2017-08-10 6 views
0

ActionMailerクラスのActionMailer SMTP設定を変更したいのですが、変更できません。これは私が試したものです。ActionメイラーのSMTP設定をメーラーレール5に変更する

class MyMailer < ActionMailer::Base 
    def sample 
    deliver_with(:mailgun) 
    end 

    def deliver_with(server = :transactional) 
    Rails.application.config.action_mailer.smtp_settings = Rails.application.secrets[:smtp][server] 
    ActionMailer::Base.smtp_settings = Rails.application.secrets[:smtp][server] 
    end 

答えて

2

これはどのように行われている。

class ApplicationMailer < ActionMailer::Base 
    layout 'mailer' 

    after_action :config_smtp 

    def sample 
    deliver_with(:mailgun) 
    end 

    private 

    def config_smtp 
     mail.delivery_method.settings.merge! @smtp_settings if @smtp_settings 
    end 

    def deliver_with(server = :transactional) 
     server = server.to_s 
     unless Rails.application.secrets[:smtp].keys.include? server 
     server = "mandrill" 
     end 

     @smtp_settings = Rails.application.secrets[:smtp][server] 
    end 

そして、あなたの秘密の

smtp: 
    mandrill: 
     :address: 'smtp.mandrillapp.com' 
     :port: 587 
     :user_name: '123' 
     :password: '' 
     :authentication: 'plain' 
     :enable_starttls_auto: true 

    mailgun: 
     :address: 'smtp.mailgun.org' 
     :port: 587 
     :user_name: '[email protected]' 
     :password: '' 
     :authentication: 'plain' 
     :enable_starttls_auto: true 
0

私はあなたのクラス定義内の環境ファイル(development.rb、production.rb、test.rb)といないでこれらの設定を変更する必要があると思います。

+0

私は複数のSMTPサーバを使用するので、クラス定義内に変更する必要があります/ –

関連する問題