Sha256: 128becb1cdca25cd22003496bbc55c79e1c33874f295d1bb87d8abd9ec9be74e

Contents?: true

Size: 1.69 KB

Versions: 19

Compression:

Stored size: 1.69 KB

Contents

module Spree
  module Core
    class MailSettings
      MAIL_AUTH = ['None', 'plain', 'login', 'cram_md5']
      SECURE_CONNECTION_TYPES = ['None','SSL','TLS']

      # Override the Rails application mail settings based on preferences
      # This makes it possible to configure the mail settings through an admin
      # interface instead of requiring changes to the Rails envrionment file
      def self.init
        self.new.override! if override?
      end

      def self.override?
        Config.override_actionmailer_config
      end

      def override!
        if Config.enable_mail_delivery
          ActionMailer::Base.default_url_options[:host] ||= Config.site_url
          ActionMailer::Base.smtp_settings = mail_server_settings
          ActionMailer::Base.perform_deliveries = true
        else
          ActionMailer::Base.perform_deliveries = false
        end
      end

      private
        def mail_server_settings
          settings = if need_authentication?
            basic_settings.merge(user_credentials)
          else
            basic_settings
          end

          settings.merge :enable_starttls_auto => secure_connection?
        end

        def user_credentials
          { :user_name => Config.smtp_username,
            :password => Config.smtp_password }
        end

        def basic_settings
          { :address => Config.mail_host,
            :domain => Config.mail_domain,
            :port => Config.mail_port,
            :authentication => Config.mail_auth_type }
        end

        def need_authentication?
          Config.mail_auth_type != 'None'
        end

        def secure_connection?
          Config.secure_connection_type == 'TLS'
        end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
spree_core-2.0.13 lib/spree/core/mail_settings.rb
spree_core-2.0.12 lib/spree/core/mail_settings.rb
spree_core-2.0.11 lib/spree/core/mail_settings.rb
spree_core-2.0.10 lib/spree/core/mail_settings.rb
spree_core-2.0.9 lib/spree/core/mail_settings.rb
spree_core-2.0.8 lib/spree/core/mail_settings.rb
spree_core-2.1.3 lib/spree/core/mail_settings.rb
spree_core-2.0.7 lib/spree/core/mail_settings.rb
spree_core-2.1.2 lib/spree/core/mail_settings.rb
spree_core-2.0.6 lib/spree/core/mail_settings.rb
spree_core-2.1.1 lib/spree/core/mail_settings.rb
spree_core-2.0.5 lib/spree/core/mail_settings.rb
spree_core-2.1.0 lib/spree/core/mail_settings.rb
spree_core-2.0.4 lib/spree/core/mail_settings.rb
spree_core-2.0.3 lib/spree/core/mail_settings.rb
spree_core-2.0.2 lib/spree/core/mail_settings.rb
spree_core-2.0.1 lib/spree/core/mail_settings.rb
spree_core-2.0.0 lib/spree/core/mail_settings.rb
spree_core-2.0.0.rc1 lib/spree/core/mail_settings.rb