Sha256: 30e3429cff523595a196bc335e11e5fa59d0775584be56a330bf4bfcbf4eadc5

Contents?: true

Size: 1.49 KB

Versions: 24

Compression:

Stored size: 1.49 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
        override! if override?
      end

      def self.override?
        Config.override_actionmailer_config
      end

      def self.override!
        ActionMailer::Base.delivery_method = :spree
        ActionMailer::Base.default_url_options[:host] ||= Config.site_url
      end

      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

      private
      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

24 entries across 24 versions & 1 rubygems

Version Path
spree_core-2.2.14 lib/spree/core/mail_settings.rb
spree_core-2.2.13 lib/spree/core/mail_settings.rb
spree_core-2.2.12 lib/spree/core/mail_settings.rb
spree_core-2.2.11 lib/spree/core/mail_settings.rb
spree_core-2.2.10 lib/spree/core/mail_settings.rb
spree_core-2.2.9 lib/spree/core/mail_settings.rb
spree_core-2.1.12 lib/spree/core/mail_settings.rb
spree_core-2.2.8 lib/spree/core/mail_settings.rb
spree_core-2.1.11 lib/spree/core/mail_settings.rb
spree_core-2.2.7 lib/spree/core/mail_settings.rb
spree_core-2.1.10 lib/spree/core/mail_settings.rb
spree_core-2.1.9 lib/spree/core/mail_settings.rb
spree_core-2.2.6 lib/spree/core/mail_settings.rb
spree_core-2.2.5 lib/spree/core/mail_settings.rb
spree_core-2.1.8 lib/spree/core/mail_settings.rb
spree_core-2.2.4 lib/spree/core/mail_settings.rb
spree_core-2.2.3 lib/spree/core/mail_settings.rb
spree_core-2.2.2 lib/spree/core/mail_settings.rb
spree_core-2.1.7 lib/spree/core/mail_settings.rb
spree_core-2.1.6 lib/spree/core/mail_settings.rb