Я хотел бы получить тело письма
в виде строки ascii.
Маловероятно, что вы не сможете сделать это: что если это не ascii? Даже если все написано на английском языке, оно может содержать символы вне диапазона ascii. Документация imaplib
не затрагивает вопросы кодирования, поэтому я предполагаю, что данные поступают в виде байтовых строк, и я ожидаю, что они будут в кодировке utf-8. Другие библиотеки могут предоставлять вам строки Unicode, которые вы можете кодировать в любой интересующей вас кодировке (но utf-8 - хороший выбор).
Тем не менее, я полагаю, вы на самом деле имеете в виду не «ascii», а то, что вы называете «простым текстом» - текст, а не html, версия электронного письма. Это может быть многочастное письмо, в этом случае вы можете извлечь текстовую / обычную часть из полученной вами строки. Если это не так, а тело письма было только html, вы можете использовать стороннюю библиотеку. Есть ряд опций, обсуждаемых в этой теме SO .