Что делать с кодировкой тела сообщения imap_body?
Курить multipart/form-data
Ну и сразу накуривается https://github.com/php-mime-mail-parser/php-mime-m...
Получилось решить через imap. Не знаю, подойдет ли это для каждого, но для моей задачи ОК.

$imap = imap_open("{imap.yandex.ru:993/imap/ssl}", "login", "password");

    $mails = imap_search($imap, 'ON "12-Dec-2020"', OP_READONLY); // ON "12-Dec-2020 - условие

    foreach($mails as $mail) {
        $structure = imap_fetchstructure($imap, $mail);
        if (isset($structure->parts[1])) {
            $part = $structure->parts[1];
            $message = imap_fetchbody($imap,$mail,1);
            if(strpos($message,"<html") !== false) {
                $message = trim(utf8_encode(quoted_printable_decode($message)));
            }
            else if ($part->encoding == 3) {
                $message = imap_base64($message);
            }
            else if($part->encoding == 2) {
                $message = imap_binary($message);
            }
            else if($part->encoding == 1) {
                $message = imap_8bit($message);
            }
            else {
                $message = trim(utf8_encode(quoted_printable_decode(imap_qprint($message))));
            }
        }
        echo '<pre>';
        print_r($message);
        echo '</pre>';
    }