Postfix: как сконвертировать входящее письмо из html в plain text?
Здравствуйте! Помогите, если сможете. Есть некий сервис техподдержки, государственный, который отрабатывает инциденты по работе информационной системы. Туда направляют запросы, а он по электронной почте отвечает. Всё бы нормально, только делает он это "своеобразно" (мы политкорректны и некрасивые слова не используем!) - присылает html-письмо в MIME с шапкой, куда ещё и внутри вложен inline-вложением дополнительный html-файл с конкретным ответом по конкретно нашему запросу. Всё бы ничего, почтовая программа html отрабатывает, но вот html внутри html - уже нет. Да, почтовая программа использует не очень современный web-движок, а может быть, у движка подобное отключено по соображениям безопасности. Вот, Outlook и Thunderbird подобное умеют, а эта программа - нет, даже последняя версия. Попробовал Sylpheed - очень коряво, но показывает (просто игнорируя html-теги). Итак, возникла идея - а можно ли настроить в Postfix фильтр, который на лету, в процессе приёма письма, конвертировал бы его из html в plain text? Идеально - только для домена этого отправителя. Как возможно такое реализовать?
Дополнительно:
Ответы:
просто для направления мысли
смотри, можно сделать алиас для получения писем от этого клиента. а вот для алиаса сделать чтото типа
usermail: "|/path/to/myscript.pl"
а уж там в скрипте обрабатывать сообщение как угодно.
- еще есть такая штука как mailbox_command , там тоже можно всякое исполнять
https://www.postfix.org/postconf.5.html#mailbox_command
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для конвертации входящего письма из формата HTML в обычный текст (plain text) можно использовать различные методы в зависимости от языка программирования, который вы используете. Ниже приведен пример на PHP:
// Функция для конвертации HTML в plain text function htmlToPlainText($html) { // Удаляем все HTML теги $text = strip_tags($html); // Декодируем HTML entities $text = html_entity_decode($text); // Удаляем лишние пробелы и символы переноса строк $text = preg_replace('/\s+/', ' ', $text); return $text; } // Пример использования $htmlContent = '<h1>Привет, мир!</h1><p>Это HTML письмо.</p>'; $plainTextContent = htmlToPlainText($htmlContent); echo $plainTextContent;
Этот код преобразует HTML контент в обычный текст, удаляя все HTML теги, декодируя HTML entities и удаляя лишние пробелы и символы переноса строк. Вы можете использовать эту функцию в своем проекте для конвертации входящих писем из HTML в plain text.