diff --git a/mailboxes/folders-lib.pl b/mailboxes/folders-lib.pl index 0c5448792..348c0737e 100755 --- a/mailboxes/folders-lib.pl +++ b/mailboxes/folders-lib.pl @@ -2521,6 +2521,21 @@ if (($h2 = &has_command("html2text")) || ($lynx = &has_command("lynx"))) { return $text; } else { + # Can we use Perl HTML formatter + # for the better conversion + eval "use HTML::TreeBuilder"; + if (!$@) { + eval "use HTML::FormatText"; + if (!$@) { + my $html_parser = HTML::TreeBuilder->new(); + eval "use utf8"; + utf8::decode($html) + if (!$@); + $html_parser->parse($html); + my $formatter = HTML::FormatText->new(leftmargin => 1, rightmargin => 79); + return $formatter->format($html_parser); + } + } # Do conversion manually :( $html =~ s/\s+/ /g; $html =~ s/

/\n\n/gi;