FIX: Add strip_secure_urls method to GroupSmtpMailer

FIX: Add strip_secure_urls method to GroupSmtpMailer

  • this mailer needs some more cleanup and specs; this commit just adds the missing method so the mailer does not error completely in secure media environments
diff --git a/app/mailers/group_smtp_mailer.rb b/app/mailers/group_smtp_mailer.rb
index 15b9051..01ef9b5 100644
--- a/app/mailers/group_smtp_mailer.rb
+++ b/app/mailers/group_smtp_mailer.rb
@@ -86,6 +86,19 @@ class GroupSmtpMailer < ActionMailer::Base
     result
   end
 
+  def strip_secure_urls(raw)
+    urls = Set.new
+    raw.scan(URI.regexp(%w{http https})) { urls << $& }
+
+    urls.each do |url|
+      if (url.start_with?(Discourse.store.s3_upload_host) && FileHelper.is_supported_media?(url))
+        raw = raw.sub(url, "<p class='secure-media-notice'>#{I18n.t("emails.secure_media_placeholder")}</p>")
+      end
+    end
+
+    raw
+  end
+
   def html_override(post, context_posts: nil)
     UserNotificationRenderer.render(
       template: 'email/notification',

GitHub sha: 0e78cd6e

1 Like