FIX: broken mailto href's in emails

This commit is contained in:
Neil Lalonde 2018-06-08 13:11:52 -04:00
parent d96c775833
commit b8cf0788c6
2 changed files with 8 additions and 1 deletions

View File

@ -360,7 +360,9 @@ module PrettyText
begin
uri = URI(href)
site_uri ||= URI(Discourse.base_url)
link["href"] = "#{site_uri}#{link['href']}" unless uri.host.present?
unless uri.host.present? || href.start_with?('mailto')
link["href"] = "#{site_uri}#{link['href']}"
end
rescue URI::InvalidURIError, URI::InvalidComponentError
# leave it
end

View File

@ -628,6 +628,11 @@ describe PrettyText do
html = "<p>Check out <a href=\"not a real url\">this guy</a>.</p>"
expect { described_class.format_for_email(html, post) }.to_not raise_error
end
it "doesn't change mailto" do
html = "<p>Contact me at <a href=\"mailto:username@me.com\">this address</a>.</p>"
expect(PrettyText.format_for_email(html, post)).to eq(html)
end
end
it 'Is smart about linebreaks and IMG tags' do