diff --git a/lib/core_ext/string.rb b/lib/core_ext/string.rb
index d35882f28..f59db8ce2 100644
--- a/lib/core_ext/string.rb
+++ b/lib/core_ext/string.rb
@@ -349,6 +349,9 @@ class String
string.gsub!(%r{[[:space:]]*(
[[:space:]]*)*\Z}i, '')
string.gsub!(%r{(
){1,10}\Z}i, '')
+ # https://github.com/zammad/zammad/issues/4112
+ string.gsub!(%r{<!\[if !supportLists\]>.+?<!\[endif\]>}, '• ')
+
string.signature_identify('html')
marker_template = ''
diff --git a/spec/lib/core_ext/string_spec.rb b/spec/lib/core_ext/string_spec.rb
index afc4d639e..51135ff38 100644
--- a/spec/lib/core_ext/string_spec.rb
+++ b/spec/lib/core_ext/string_spec.rb
@@ -1430,6 +1430,20 @@ RSpec.describe String do
Luxemburg
TEXT
end
+
+ # https://github.com/zammad/zammad/issues/4112
+ it 'converts lists from MS Outlook correctly' do
+ expect(<<~HTML.chomp.html2html_strict).to eq(<<~TEXT.chomp)
+
+ ·
+ 1
+
+ ·
+ 2
+ HTML
+ • 1
• 2
+ TEXT
+ end
end
context 'signature recognition' do