Они должны быть текстовыми, но не всегда.
Письма могут быть 8-битными или двоичными.
StreamReader будет работать примерно с 99% писем, которые вы хотите проанализировать.
Однако, честно говоря, это не самая большая проблема.
Проблема будет в том, что на самом деле выполняется синтаксический анализ и извлечение содержимого Mime в соответствии с правилами Mime, а также использование правильного набора символов.
Хотя UTF-8 - очень большой набор символов, и его можно использовать для анализа большинства электронных писем, вы все равно можете получить поврежденный контент, пытаясь проанализировать электронные письма с этим набором символов.
Лучший способ сделать это - фактически прочитать электронное письмо в двоичной форме, извлечь набор символов, а затем переключиться на чтение электронного письма, используя указанный набор символов, найденный в заголовках.