From 1da1182c23e9673d8f109d8ed29e80983cdccabf Mon Sep 17 00:00:00 2001 From: Adam Cooke Date: Mon, 4 Mar 2024 16:52:36 +0000 Subject: [PATCH] fix: unescape in URLs which are stored for tracking closes #2568 closes #907 closes #115 --- lib/postal/message_parser.rb | 3 ++- script/send_html_email.rb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/postal/message_parser.rb b/lib/postal/message_parser.rb index cad8601..b4f24ba 100644 --- a/lib/postal/message_parser.rb +++ b/lib/postal/message_parser.rb @@ -118,7 +118,8 @@ module Postal part.gsub!(/href=(['"])(#{URL_REGEX})['"]/) do if track_domain?($~[:domain]) @tracked_links += 1 - token = @message.create_link($~[:url]) + url = CGI.unescapeHTML($~[:url]) + token = @message.create_link(url) "href='#{domain}/#{@message.server.token}/#{token}'" else ::Regexp.last_match(0) diff --git a/script/send_html_email.rb b/script/send_html_email.rb index ba81aa0..8695043 100644 --- a/script/send_html_email.rb +++ b/script/send_html_email.rb @@ -36,7 +36,7 @@ mail.html_part = Mail::Part.new do

Hello there

This is an example email. It doesn't do all that much.

Some other characters: őúéáűí

-

There is a link here though...

+

There is a link here though...

BODY end