Задать вопрос
oldTV
@oldTV

Как заменить текст в полученном письме с помощью regexp?

Информация от клиента в электронном письме содержит несколько "мусорных" текстовых вставок, добавляемых различными почтовыми программами клиента или их СРМ. Письмо хотелось бы привести в более читаемый вид и убрать эти данные. Известно что они приходят с конкретного адреса, т.е. можно составить фильтр по нему.
Но как обработать его и переслать на другой адрес?
  • Вопрос задан
  • 68 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
PQR
@PQR
Эту задачу можно решить с помощью скрипта на PHP.
Весь код писать не буду, но алгоритм следующий:

1. Подключаемся к почтовом ящику с помощью одной из библиотек для работы по IMAP: https://packagist.org/?query=imap (например, php-imap/php-imap)

2. Читаем все письма из папки inbox

3. Для каждого письма проверяем отправителя - если это тот самый отправитель, идём дальше

4. Получаем текст сообщения в виде строки в переменной, допустим $body

5. Заранее нужно заготовить примеры "мусорного текста", которые хотим вырезать. Для примера пусть они будут записаны в PHP коде в виде массива в константе TO_BE_DETELED_TEXTS

Удаляем эти мусорные фрагменты из текста письма:
$newBody = 
str_replace(self::TO_BE_DETELED_TEXTS, '', $body);


6. С помощью всё-той же библиотеки для работы почтой (из шага 1), отправляем письмо с новым текстом дальше на целевой почтовый ящик. Обратите внимание, что отправитель (поле from) поменяется, так что при отправке рекомендую в тело нового письма ($newBody) и в поле "reply to" добавить информацию об оригинальном авторе письма, чтобы читающий знал кому потом отвечать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы