Sha256: 53ca634bd312741227c40b7c271c278be16e8dd21d7fee316c4bd845b17ede00

Contents?: true

Size: 521 Bytes

Versions: 25

Compression:

Stored size: 521 Bytes

Contents

# frozen_string_literal: true

require "mail"

module Nuntius
  class MailAllowList
    def initialize(allow_list = [])
      allow_list = [] if allow_list.blank?
      @allow_list = allow_list.map(&:downcase)
    end

    def allowed?(email)
      return true if @allow_list.blank?

      mail_to = Mail::Address.new(email.downcase)
      allow_list_match = @allow_list.detect do |allow|
        allow == (allow.include?("@") ? mail_to.to_s : mail_to.domain)
      end

      allow_list_match.present?
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
nuntius-1.3.19 lib/nuntius/mail_allow_list.rb
nuntius-1.3.18 lib/nuntius/mail_allow_list.rb
nuntius-1.3.17 lib/nuntius/mail_allow_list.rb
nuntius-1.3.16 lib/nuntius/mail_allow_list.rb
nuntius-1.3.15 lib/nuntius/mail_allow_list.rb
nuntius-1.3.14 lib/nuntius/mail_allow_list.rb
nuntius-1.3.13 lib/nuntius/mail_allow_list.rb
nuntius-1.3.12 lib/nuntius/mail_allow_list.rb
nuntius-1.3.11 lib/nuntius/mail_allow_list.rb
nuntius-1.3.10 lib/nuntius/mail_allow_list.rb
nuntius-1.3.9 lib/nuntius/mail_allow_list.rb
nuntius-1.3.8 lib/nuntius/mail_allow_list.rb
nuntius-1.3.7 lib/nuntius/mail_allow_list.rb
nuntius-1.3.6 lib/nuntius/mail_allow_list.rb
nuntius-1.3.5 lib/nuntius/mail_allow_list.rb
nuntius-1.3.4 lib/nuntius/mail_allow_list.rb
nuntius-1.3.3 lib/nuntius/mail_allow_list.rb
nuntius-1.3.2 lib/nuntius/mail_allow_list.rb
nuntius-1.3.1 lib/nuntius/mail_allow_list.rb
nuntius-1.3.0 lib/nuntius/mail_allow_list.rb