|
|
|
|
@ -6,6 +6,8 @@ class SubmitterMailer < ApplicationMailer
|
|
|
|
|
|
|
|
|
|
DEFAULT_INVITATION_SUBJECT = 'You are invited to submit a form'
|
|
|
|
|
|
|
|
|
|
NO_REPLY_REGEXP = /no-?reply@/i
|
|
|
|
|
|
|
|
|
|
def invitation_email(submitter)
|
|
|
|
|
@current_account = submitter.submission.account
|
|
|
|
|
@submitter = submitter
|
|
|
|
|
@ -28,12 +30,13 @@ class SubmitterMailer < ApplicationMailer
|
|
|
|
|
|
|
|
|
|
assign_message_metadata('submitter_invitation', @submitter)
|
|
|
|
|
|
|
|
|
|
reply_to = build_submitter_reply_to(@submitter)
|
|
|
|
|
|
|
|
|
|
mail(
|
|
|
|
|
to: @submitter.friendly_name,
|
|
|
|
|
from: from_address_for_submitter(submitter),
|
|
|
|
|
subject:,
|
|
|
|
|
reply_to: submitter.preferences['reply_to'].presence ||
|
|
|
|
|
(submitter.submission.created_by_user || submitter.template.author)&.friendly_name&.sub(/\+\w+@/, '@')
|
|
|
|
|
reply_to:
|
|
|
|
|
)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
@ -104,16 +107,26 @@ class SubmitterMailer < ApplicationMailer
|
|
|
|
|
|
|
|
|
|
assign_message_metadata('submitter_documents_copy', @submitter)
|
|
|
|
|
|
|
|
|
|
reply_to = build_submitter_reply_to(submitter)
|
|
|
|
|
|
|
|
|
|
mail(from: from_address_for_submitter(submitter),
|
|
|
|
|
to: to || @submitter.friendly_name,
|
|
|
|
|
reply_to: @submitter.preferences['reply_to'].presence ||
|
|
|
|
|
(@submitter.submission.created_by_user ||
|
|
|
|
|
@submitter.template.author)&.friendly_name&.sub(/\+\w+@/, '@'),
|
|
|
|
|
reply_to:,
|
|
|
|
|
subject:)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
|
|
def build_submitter_reply_to(submitter)
|
|
|
|
|
reply_to =
|
|
|
|
|
submitter.preferences['reply_to'].presence ||
|
|
|
|
|
(submitter.submission.created_by_user || submitter.template.author)&.friendly_name&.sub(/\+\w+@/, '@')
|
|
|
|
|
|
|
|
|
|
return nil if reply_to.to_s.match?(NO_REPLY_REGEXP)
|
|
|
|
|
|
|
|
|
|
reply_to
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def build_completed_subject(submitter)
|
|
|
|
|
submitters = submitter.submission.submitters.order(:completed_at)
|
|
|
|
|
.map { |e| e.name || e.email || e.phone }.join(', ')
|
|
|
|
|
|