- foreach my $subpart ($part->parts) {
- if ($subpart->mime_type eq 'text/html') {
- $subpart->print_body;
- last;
- } elsif ($subpart->mime_type eq 'multipart/related') {
- # This is stupid - multipart/related? When it's really just HTML?!?
- $subpart->print_body;
- last;
- } # if
- } # foreach
+ for my $subpart ($part->parts) {
+ if ($subpart->mime_type eq 'text/html') {
+ # There should be an easier way to get this but I couldn't find one.
+ my $encoding = ${$subpart->{mail_inet_head}{mail_hdr_hash}{'Content-Transfer-Encoding'}[0]};
+ if ($encoding =~ /base64/) {
+ $subpart->bodyhandle->print();
+ } else {
+ $subpart->print_body;
+ } # if
+ last;
+ } elsif ($subpart->mime_type eq 'multipart/related') {
+ # This is stupid - multipart/related? When it's really just HTML?!?
+ $subpart->print_body;
+ last;
+ } # if
+ } # for
+ } elsif ($part->mime_type eq 'multipart/related') {
+ # Sometimes parts are 'multipart/relative'...
+ $part->print_body;