diff --git a/app/models/user.rb b/app/models/user.rb index 6af98ce0..8d5ecdfc 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -49,6 +49,9 @@ class User < ApplicationRecord EMAIL_REGEXP = /[^@;,<>\s]+@[^@;,<>\s]+/ + FULL_EMAIL_REGEXP = + /\A[a-z0-9][\.']?(?:(?:[a-z0-9_-]+[\.\+'])*[a-z0-9_-]+)*@(?:[a-z0-9]+[\.-])*[a-z0-9]+\.[a-z]{2,}\z/i + has_one_attached :signature has_one_attached :initials diff --git a/lib/action_mailer_configs_interceptor.rb b/lib/action_mailer_configs_interceptor.rb index bc2adcfd..7cbf5605 100644 --- a/lib/action_mailer_configs_interceptor.rb +++ b/lib/action_mailer_configs_interceptor.rb @@ -18,7 +18,11 @@ module ActionMailerConfigsInterceptor if Rails.env.production? && Rails.application.config.action_mailer.delivery_method from = ENV.fetch('SMTP_FROM').to_s.split(',').sample - message.from = from + if from.match?(User::FULL_EMAIL_REGEXP) + message[:from] = message[:from].to_s.sub(User::EMAIL_REGEXP, from) + else + message.from = from + end if from == 'DocuSeal ' message.body.instance_variable_set( diff --git a/lib/params/base_validator.rb b/lib/params/base_validator.rb index 5eab967a..8075a126 100644 --- a/lib/params/base_validator.rb +++ b/lib/params/base_validator.rb @@ -2,7 +2,7 @@ module Params class BaseValidator - EMAIL_REGEXP = /\A[a-z0-9][\.']?(?:(?:[a-z0-9_-]+[\.\+'])*[a-z0-9_-]+)*@(?:[a-z0-9]+[\.-])*[a-z0-9]+\.[a-z]{2,}\z/i + EMAIL_REGEXP = User::FULL_EMAIL_REGEXP InvalidParameterError = Class.new(StandardError)