Sha256: 0d11c57e971b092c05147ee302c927817962ca37cbde7bd42c8dc687c395be5e

Contents?: true

Size: 950 Bytes

Versions: 2

Compression:

Stored size: 950 Bytes

Contents

# frozen_string_literal: true

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

          # Regexp to match the auto-generated emails
          regexp = /^mpassid-[a-z0-9]{32}@#{Decidim::Mpassid.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

2 entries across 2 versions & 1 rubygems

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