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:
23
config/initializers/disable_mailer_annotations.rb
Normal file
23
config/initializers/disable_mailer_annotations.rb
Normal 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
|
||||||
Reference in New Issue
Block a user