Module: SanitizeEmail

Extended by:
Deprecation
Defined in:
lib/sanitize_email/bleach.rb,
lib/sanitize_email.rb,
lib/sanitize_email/config.rb,
lib/sanitize_email/railtie.rb,
lib/sanitize_email/version.rb,
lib/sanitize_email/engine_v5.rb,
lib/sanitize_email/engine_v6.rb,
lib/sanitize_email/deprecation.rb,
lib/sanitize_email/test_helpers.rb,
lib/sanitize_email/rspec_matchers.rb,
lib/sanitize_email/mail_header_tools.rb,
lib/sanitize_email/overridden_addresses.rb

Overview

Copyright © 2008 - 2018, 2020, 2022, 2024 Peter H. Boling of RailsBling.com Released under the MIT license

Defined Under Namespace

Modules: Deprecation, MailExt, MailHeaderTools, RspecMatchers, TestHelpers, Version Classes: Bleach, Config, EngineV5, EngineV6, MissingBlockParameter, OverriddenAddresses, Railtie

Class Attribute Summary collapse

Class Method Summary collapse

Methods included from Deprecation

deprecated, deprecated_alias, deprecation, deprecation_warning_message

Class Attribute Details

.force_sanitizeObject

Returns the value of attribute force_sanitize.



57
58
59
# File 'lib/sanitize_email.rb', line 57

def force_sanitize
  @force_sanitize
end

Class Method Details

.[](key) ⇒ Object



59
60
61
62
# File 'lib/sanitize_email.rb', line 59

def [](key)
  return unless key.respond_to?(:to_sym)
  SanitizeEmail::Config.config[key.to_sym]
end

.activate?(message) ⇒ Boolean

Returns:

  • (Boolean)


88
89
90
91
# File 'lib/sanitize_email.rb', line 88

def activate?(message)
  proc = SanitizeEmail::Config.config[:activation_proc]
  proc.call(message) if proc.respond_to?(:call)
end

.janitor(options) ⇒ Object



137
138
139
140
141
142
143
# File 'lib/sanitize_email.rb', line 137

def janitor(options)
  raise MissingBlockParameter, "SanitizeEmail.janitor must be called with a block" unless block_given?
  original = SanitizeEmail.force_sanitize
  SanitizeEmail.force_sanitize = options[:forcing]
  yield
  SanitizeEmail.force_sanitize = original
end

.local_environmentsObject

NOTE: Deprecated method We have to actually define because we can’t deprecate methods that are hooked up via method_missing



84
85
86
# File 'lib/sanitize_email.rb', line 84

def local_environments
  SanitizeEmail::Config.config[:local_environments]
end

.method_missing(name, *_args) ⇒ Object



64
65
66
67
68
69
70
# File 'lib/sanitize_email.rb', line 64

def method_missing(name, *_args)
  if name
    SanitizeEmail[name]
  else
    super
  end
end

.respond_to_missing?(method_name, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/sanitize_email.rb', line 72

def respond_to_missing?(method_name, include_private = false)
  method_name ? method_name : super
end

.sanitary(config_options = {}) ⇒ Object

Regardless of the Config settings of SanitizeEmail you can do a local override to send sanitary email in any environment. You have access to all the same configuration options in the parameter hash as you can set in the actual SanitizeEmail.configure block.

SanitizeEmail.sanitary(sanitized_to: “[email protected]”) do

Mail.deliver do
  from      "[email protected]"
  # Will actually be sent to the override addresses, not this one:
  to        "[email protected]"
  reply_to  "[email protected]"
  subject   "subject"
end

end



108
109
110
111
112
113
114
115
116
# File 'lib/sanitize_email.rb', line 108

def sanitary(config_options = {})
  raise MissingBlockParameter, "SanitizeEmail.sanitary must be called with a block" unless block_given?
  janitor(forcing: true) do
    original = SanitizeEmail::Config.config.dup
    SanitizeEmail::Config.config.merge!(config_options)
    yield
    SanitizeEmail::Config.config = original
  end
end

.sanitized_recipientsObject

NOTE: Deprecated method We have to actually define because we can’t deprecate methods that are hooked up via method_missing



78
79
80
# File 'lib/sanitize_email.rb', line 78

def sanitized_recipients
  # NOOP - This method is never actually executed, because the deprecations redirects the call to sanitized_to
end

.unsanitaryObject

Regardless of the Config settings of SanitizeEmail you can do a local override to force unsanitary email in any environment.

SanitizeEmail.unsanitary do

Mail.deliver do
  from      "[email protected]"
  to        "[email protected]"
  reply_to  "[email protected]"
  subject   "subject"
end

end



130
131
132
133
134
135
# File 'lib/sanitize_email.rb', line 130

def unsanitary
  raise MissingBlockParameter, "SanitizeEmail.unsanitary must be called with a block" unless block_given?
  janitor(forcing: false) do
    yield
  end
end