Sha256: 41b81be64224309f22b64854dbf50a26ef24587e2410ca5915231e1fb2dadf43

Contents?: true

Size: 950 Bytes

Versions: 3

Compression:

Stored size: 950 Bytes

Contents

# frozen_string_literal: true

module Decidim
  module Suomifi
    module MailInterceptors
      # Prevents sending emails to the auto-generated email addresses.
      class GeneratedRecipientsInterceptor
        def self.delivering_email(message)
          return unless Decidim::Suomifi.auto_email_domain

          # Regexp to match the auto-generated emails
          regexp = /^suomifi-[a-z0-9]{32}@#{Decidim::Suomifi.auto_email_domain}$/

          # Remove the auto-generated email from the message recipients
          message.to = message.to.reject { |email| email =~ regexp } if message.to
          message.cc = message.cc.reject { |email| email =~ regexp } if message.cc
          message.bcc = message.bcc.reject { |email| email =~ regexp } if message.bcc

          # Prevent delivery in case there are no recipients on the email
          message.perform_deliveries = false if message.to.empty?
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
decidim-suomifi-0.19.0 lib/decidim/suomifi/mail_interceptors/generated_recipients_interceptor.rb
decidim-suomifi-0.18.1 lib/decidim/suomifi/mail_interceptors/generated_recipients_interceptor.rb
decidim-suomifi-0.18.0 lib/decidim/suomifi/mail_interceptors/generated_recipients_interceptor.rb