+sub dump_html_line {
+ my ($self, $level, $args) = @_; # args => [ $html, $midurl ]
+ $args->[0] .= (' ' x $level);
+ if ($self->message) {
+ my $simple = $self->message;
+ my $subj = utf8_header($simple, "Subject");
+ my $mid = utf8_header($simple, "Message-ID");
+ $mid =~ s/\A<//;
+ $mid =~ s/>\z//;
+ my $url = $args->[1] . uri_escape($mid);
+ my $from = utf8_header($simple, "From");
+ my @from = Email::Address->parse($from);
+ $from = $from[0]->name;
+ (defined($from) && length($from)) or $from = $from[0]->address;
+ $from = escapeHTML($from);
+ $subj = escapeHTML($subj);
+ $args->[0] .= "<a href=$url>`-> $subj</a> $from\n";
+ } else {
+ $args->[0] .= "[ Message not available ]\n";
+ }
+ dump_html_line($self->child, $level+1, $args) if $self->child;
+ dump_html_line($self->next, $level, $args) if $self->next;
+}
+