Я считаю, что такого модуля нет, потому что он очень ориентирован на задачи, и существует огромное разнообразие стилей форматирования сообщений.Минимальная реализация - это то, что вы можете сделать с помощью нескольких строк кода:
use Email::MIME;
my $email = Email::MIME->new($message);
my $body;
$email->walk_parts(sub {
my ($part) = @_;
return unless $part->content_type =~ m[text/plain];
$body .= $part->body;
});
# strip quoted lines and attribution line
$body =~ s/^.+ wrote:\n(?=\n* ?>)//m;
$body =~ s/^ ?>.*\n//gm;
# strip signature
$body =~ s/-- \R.+//;
Конечно, вы можете добавить другие эвристические правила для удаления строк атрибуции, написанных на других языках, а также для удаления стиля Outlookцитируемый текст.Я бы предложил некоторые эвристические методы, чтобы избежать зачистки текста в кавычках, если сообщение распознается с использованием чередования в стиле чередования.Это потому, что чередующиеся ответы могут потерять некоторое значение, если вы удалите цитируемый текст.
Если вы хотите выделить это в модуле, я бы назвал его Email::ExtractBody
или Email::ExtractText
.В POD я бы подчеркнул, что в модуле используется эвристический подход с максимальными усилиями.