class MailAllowed

Filter mails with a specific allowed e-mail addresses and only leaves those in the 'to'.

Constants

VERSION

Attributes

allowed_addresses[R]
fallback[R]

Public Class Methods

new(allowed_addresses, fallback = nil) click to toggle source

@param [Array<String>, include?] allowed_addresses @param [String] fallback

# File lib/mail_allowed.rb, line 10
def initialize(allowed_addresses, fallback = nil)
  @allowed_addresses = allowed_addresses
  @fallback = fallback
end

Public Instance Methods

delivering_email(mail) click to toggle source
# File lib/mail_allowed.rb, line 15
def delivering_email(mail)
  mail.to = mail.to.select { |recipient| allowed?(recipient) }
  mail.to = [fallback] unless mail.to.any?
end

Private Instance Methods

allowed?(recipient) click to toggle source
# File lib/mail_allowed.rb, line 22
def allowed?(recipient)
  allowed_addresses.any? do |address|
    if address.start_with?('@')
      recipient.end_with?(address)
    else
      address == recipient
    end
  end
end