From e28119cb1cc5c819e12c801989f4bf9d2cb0fa56 Mon Sep 17 00:00:00 2001 From: Justin Duke Date: Sat, 4 Jan 2025 11:52:52 -0500 Subject: [PATCH] WIP --- lib/postal/message_db/message.rb | 13 ++++++++++--- lib/postal/message_parser.rb | 4 ++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/postal/message_db/message.rb b/lib/postal/message_db/message.rb index 4f29a6f1..10f16767 100644 --- a/lib/postal/message_db/message.rb +++ b/lib/postal/message_db/message.rb @@ -310,7 +310,7 @@ def html_body end # - # Return the HTML body with any tracking links + # Return the HTML body with the tracking image removed. # def html_body_without_tracking_image html_body.gsub(/

/, "") @@ -573,8 +573,15 @@ def parsed? # Should this message be parsed? # def should_parse? - # Header values are always arrays, so we check for `['skip']` instead of `'skip'` - parsed? == false && headers["x-amp"] != ["skip"] + parsed? == false + end + + def track_clicks? + headers["x-track-clicks"] != ["no"] + end + + def track_loads? + headers["x-track-opens"] != ["no"] end private diff --git a/lib/postal/message_parser.rb b/lib/postal/message_parser.rb index b4f24ba8..996cce46 100644 --- a/lib/postal/message_parser.rb +++ b/lib/postal/message_parser.rb @@ -85,11 +85,11 @@ def parse_parts(parts) end def parse(part, type = nil) - if @domain.track_clicks? + if @domain.track_clicks? && @message.track_clicks? part = insert_links(part, type) end - if @domain.track_loads? && type == :html + if @domain.track_loads? && @message.track_loads? && type == :html part = insert_tracking_image(part) end