diff options
Diffstat (limited to 'app/mailers/emails/service_desk.rb')
-rw-r--r-- | app/mailers/emails/service_desk.rb | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/app/mailers/emails/service_desk.rb b/app/mailers/emails/service_desk.rb index f609c9318da..9f3611df2cc 100644 --- a/app/mailers/emails/service_desk.rb +++ b/app/mailers/emails/service_desk.rb @@ -4,6 +4,7 @@ module Emails module ServiceDesk extend ActiveSupport::Concern include MarkupHelper + include ::ServiceDesk::CustomEmails::Logger EMAIL_ATTACHMENTS_SIZE_LIMIT = 10.megabytes.freeze @@ -61,9 +62,10 @@ module Emails def service_desk_custom_email_verification_email(service_desk_setting) @service_desk_setting = service_desk_setting + @project = @service_desk_setting.project email_sender = sender( - User.support_bot.id, + Users::Internal.support_bot.id, send_from_user_email: false, sender_name: @service_desk_setting.outgoing_name, sender_email: @service_desk_setting.custom_email @@ -73,7 +75,7 @@ module Emails subject = format(s_("Notify|Verify custom email address %{email} for %{project_name}"), email: @service_desk_setting.custom_email, - project_name: @service_desk_setting.project.name + project_name: @project.name ) options = { @@ -119,7 +121,7 @@ module Emails def setup_service_desk_mail(issue_id) @issue = Issue.find(issue_id) @project = @issue.project - @support_bot = User.support_bot + @support_bot = Users::Internal.support_bot @service_desk_setting = @project.service_desk_setting @@ -139,6 +141,11 @@ module Emails return mail if !service_desk_custom_email_enabled? && !force return mail unless @service_desk_setting.custom_email_credential.present? + # Only set custom email reply address if it's enabled, not when we force it. + inject_service_desk_custom_email_reply_address unless force + + log_info(project: @project) + mail.delivery_method(::Mail::SMTP, @service_desk_setting.custom_email_credential.delivery_options) end @@ -146,6 +153,15 @@ module Emails Feature.enabled?(:service_desk_custom_email, @project) && @service_desk_setting&.custom_email_enabled? end + def inject_service_desk_custom_email_reply_address + return unless Feature.enabled?(:service_desk_custom_email_reply, @project) + + reply_address = Gitlab::Email::ServiceDesk::CustomEmail.reply_address(@issue, reply_key) + headers['Reply-To'] = Mail::Address.new(reply_address).tap do |address| + address.display_name = reply_display_name(@issue) + end + end + def service_desk_sender_email_address return unless service_desk_custom_email_enabled? |