From 3975a03cb40d55220a1645a83358e2245ec6dfe5 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Thu, 24 Oct 2024 23:16:03 +0300 Subject: [PATCH] adjust from email --- app/models/user.rb | 3 +++ lib/action_mailer_configs_interceptor.rb | 6 +++++- lib/params/base_validator.rb | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) 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)