- my @msglines = $IMAP->top($_);
-
- # What happens at INBOX 0? Does top return empty array?
- $log->err("Unable to get top for $_ - " . $IMAP->errstr(), 1) unless @msglines;
-
- my $email = Email::Simple->new(join '', @msglines);
-
- my $from = $email->header('From');
+ my $envelope = $IMAP->fetch($_, '(envelope)');
+ my $from = $envelope->{$_}{envelope}{From};
+ my $subject = $envelope->{$_}{envelope}{Subject};
+ $subject //= 'Unknown subject';