class Mailsafe::RecipientWhitelist
Public Class Methods
new(message)
click to toggle source
# File lib/mailsafe/recipient_whitelist.rb, line 3 def initialize(message) @message = message @allowed_domain_config = Mailsafe.allowed_domain @allowed_domains = parse_allowed_domains end
Public Instance Methods
filter_recipient_domains()
click to toggle source
# File lib/mailsafe/recipient_whitelist.rb, line 9 def filter_recipient_domains return unless @allowed_domains.present? [ :to, :cc, :bcc ].each { |rec_type| filter_receipient_type(rec_type) } end
Private Instance Methods
email_has_domain?(email_address)
click to toggle source
# File lib/mailsafe/recipient_whitelist.rb, line 26 def email_has_domain?(email_address) email_domain = extract_domain_from_address(email_address) email_domain.present? && @allowed_domains.include?(email_domain) end
extract_domain_from_address(email_address)
click to toggle source
# File lib/mailsafe/recipient_whitelist.rb, line 31 def extract_domain_from_address(email_address) email_address.split("@")[1].try(:downcase) end
filter_receipient_type(rec_type)
click to toggle source
# File lib/mailsafe/recipient_whitelist.rb, line 16 def filter_receipient_type(rec_type) receivers = @message.send(rec_type) return unless receivers receivers = [receivers] unless receivers.is_a?(Array) receivers.select! { |recipient| email_has_domain?(recipient) } @message.send("#{rec_type}=", receivers) end
parse_allowed_domains()
click to toggle source
# File lib/mailsafe/recipient_whitelist.rb, line 35 def parse_allowed_domains if @allowed_domain_config.present? @allowed_domain_config.split(',').map(&:strip).map(&:downcase) end end