fix: Remove extra '>' characters from email templates

The '>' characters at the end of emails were caused by Rails development
mode adding HTML comment annotations to rendered views, including email
templates. This creates comments like '<!-- END app/views/...erb -->'
which can appear as stray characters in email clients.

Solution:
- Add initializer to disable view annotations specifically for ActionMailer
- Preserves debugging annotations for regular views
- Ensures clean email formatting in development mode
- No impact on production where annotations are disabled by default

The emails will now render cleanly without extra HTML comments or
stray characters at the end.
This commit is contained in:
kbe
2025-09-06 13:43:33 +02:00
parent c3f5d72a91
commit fdad3bfb7b

View File

@@ -0,0 +1,23 @@
# Disable view annotations for mailer templates to prevent HTML comments
# from breaking email formatting in development mode
if Rails.env.development?
Rails.application.configure do
# Override the annotation setting for ActionMailer specifically
config.to_prepare do
ActionMailer::Base.prepend(Module.new do
def mail(headers = {}, &block)
# Temporarily disable view annotations during email rendering
original_setting = ActionView::Base.annotate_rendered_view_with_filenames
ActionView::Base.annotate_rendered_view_with_filenames = false
result = super(headers, &block)
# Restore original setting
ActionView::Base.annotate_rendered_view_with_filenames = original_setting
result
end
end)
end
end
end