Module: Truemail

Defined in:
lib/truemail.rb,
lib/truemail/core.rb,
lib/truemail/logger.rb,
lib/truemail/worker.rb,
lib/truemail/auditor.rb,
lib/truemail/version.rb,
lib/truemail/wrapper.rb,
lib/truemail/audit/ptr.rb,
lib/truemail/log/event.rb,
lib/truemail/validator.rb,
lib/truemail/audit/base.rb,
lib/truemail/validate/mx.rb,
lib/truemail/configuration.rb,
lib/truemail/validate/base.rb,
lib/truemail/validate/smtp.rb,
lib/truemail/validate/regex.rb,
lib/truemail/log/serializer/base.rb,
lib/truemail/log/serializer/json.rb,
lib/truemail/log/serializer/text.rb,
lib/truemail/validate/smtp/request.rb,
lib/truemail/validate/smtp/response.rb,
lib/truemail/validate/domain_list_match.rb

Defined Under Namespace

Modules: Audit, Log, RegexConstant, Validate Classes: Auditor, Configuration, Logger, Validator, Worker, Wrapper

Constant Summary collapse

INCOMPLETE_CONFIG =
'verifier_email is required parameter'
NOT_CONFIGURED =
'use Truemail.configure before or pass custom configuration'
ConfigurationError =
Class.new(StandardError)
ArgumentError =
Class.new(StandardError) do
  def initialize(current_param, class_name)
    super("#{current_param} is not a valid #{class_name}")
  end
end
PunycodeRepresenter =
Class.new do
  require 'simpleidn'

  def self.call(email)
    return unless email.is_a?(String)
    return email if email.ascii_only?
    user, domain = email.split('@')
    "#{user}@#{SimpleIDN.to_ascii(domain.downcase)}"
  end
end
VERSION =
'1.5.0'

Class Method Summary collapse

Class Method Details

.configurationObject



10
11
12
13
14
15
16
17
18
# File 'lib/truemail.rb', line 10

def configuration
  @configuration ||= begin
    return unless block_given?
    configuration = Truemail::Configuration.new
    yield(configuration)
    raise_unless(configuration.complete?, Truemail::INCOMPLETE_CONFIG)
    configuration
  end
end

.configure(&block) ⇒ Object



20
21
22
# File 'lib/truemail.rb', line 20

def configure(&block)
  configuration(&block)
end

.host_audit(custom_configuration: nil) ⇒ Object



36
37
38
# File 'lib/truemail.rb', line 36

def host_audit(custom_configuration: nil)
  Truemail::Auditor.new(configuration: determine_configuration(custom_configuration)).run
end

.reset_configuration!Object



24
25
26
# File 'lib/truemail.rb', line 24

def reset_configuration!
  @configuration = nil
end

.valid?(email, **options) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/truemail.rb', line 32

def valid?(email, **options)
  validate(email, **options).result.valid?
end

.validate(email, custom_configuration: nil, **options) ⇒ Object



28
29
30
# File 'lib/truemail.rb', line 28

def validate(email, custom_configuration: nil, **options)
  Truemail::Validator.new(email, configuration: determine_configuration(custom_configuration), **options).run
end