oldTV
@oldTV

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

Информация от клиента в электронном письме содержит несколько "мусорных" текстовых вставок, добавляемых различными почтовыми программами клиента или их СРМ. Письмо хотелось бы привести в более читаемый вид и убрать эти данные. Известно что они приходят с конкретного адреса, т.е. можно составить фильтр по нему.
Но как обработать его и переслать на другой адрес?
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 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" добавить информацию об оригинальном авторе письма, чтобы читающий знал кому потом отвечать.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы