{
$headlist = iconv_mime_decode_headers($headerdata, ICONV_MIME_DECODE_CONTINUE_ON_ERROR);
$headlist['date'] = DateTime::createFromFormat(DateTimeInterface::RFC2822.'+', $headlist['Date']);
- $headlist['from'] = mailparse_rfc822_parse_addresses($headlist['From']);
- //TODO: imap_rfc822_parse_adrlist() alternative
+ $headlist['from'] = imap_rfc822_parse_adrlist($headlist['From'], '');
+ array_walk($headlist['from'], function ($row) {
+ $row->display = $row->personal ?? $row->mailbox;
+ });
return $headlist;
}
print '<dl class="terse">';
printf('<dt>Ontvangen:</dt><dd>%s</dd>', $head['date']->format('c'));
- printf('<dt>Verzender:</dt><dd>%s</dd>', htmlspecialchars($head['from'][0]['display']));
+ printf('<dt>Verzender:</dt><dd>%s</dd>', htmlspecialchars($head['From']));
print '</dl>';
if (preg_match('{^text/plain}', $head['Content-Type'] ?? 'text/plain')) {
printf(' <small class="date">%s</small>',
showdate(explode('-', $head['date']->format('Y-m-d')))
);
- print ' <em class="right">'.htmlspecialchars($head['from'][0]['display']).'</em>';
+ printf(' <em class="right">%s</em>',
+ htmlspecialchars(implode(', ', array_column($head['from'], 'display')))
+ );
print "</a></li>\n";
}
print "</ul>\n";