Страница 1 из 1
Преобразование номеров телефонов в теле письма в ссылки на уровне exim'а.
Добавлено: 2021-01-18 12:20:52
Lazy caT
Доброго времени суток, уважаемые.
Есть такой вопрос.
Есть необходимость оформить номера всех телефонов, в теле письма (в HTML), в ссылку формата
Код: Выделить всё
<a href="tel://+70123456789">+7 (012) 345 67 89</a>
на уровне сервера (exim4).
Возможно ли подобное провернуть с помощью sytem_filter?
Т.к. я в exim'овском перле, да и в перле, вообще никак, есть ли какие-нибудь примеры?
Хотя бы, примеры подмены текста (с помощью фильтров), дальше я сам попробую "допереть".

Преобразование номеров телефонов в теле письма в ссылки на уровне exim'а.
Добавлено: 2021-01-18 22:11:10
Lazy caT
Так, определенный прогресс есть.
Код: Выделить всё
if $message_body matches "[\\\\+]?[\\\\d{1}]?[\\\\s\\|-]?[\\\\(]?\\(\\\\d{3,5}\\)[\\\\)]?[\\\\s\\|-]?\\(\\\\d{1,3}\\)[\\\\s\\|-]?\\(\\\\d{2}\\)[\\\\s\\|-]?\\(\\\\d{2}\\)"
then
logwrite "EXIM FILTER DEBUG: Found 8 $1 $2 $3 $4 "
else
logwrite "EXIM FILTER: not found or error"
endif
Используя эту конструкцию, фильтр находит в теле сообщения номер телефона и в лог пишет что "Found 8 012 345 67 89".
А как можно заменить в теле одно на другое?
Это я, что-то, сообразить никак не могу.
А если номеров телефонов будет несколько?
Преобразование номеров телефонов в теле письма в ссылки на уровне exim'а.
Добавлено: 2021-01-21 14:20:20
Alex Keda
а зачем такой геморой?
а если дефисы вместо пробелов будут?
Преобразование номеров телефонов в теле письма в ссылки на уровне exim'а.
Добавлено: 2021-01-24 12:31:45
Lazy caT
Alex Keda писал(а): ↑2021-01-21 14:20:20
а если дефисы вместо пробелов будут?
В патерне предусмотрено уже наличие дефисов, пробелов и вообще, отсутствие любых символов между цифрами.
Только вот одно но. Похоже мне придется отказаться от этой затеи.
Пробовал через pipe, в system-filter, вызвать sed с преобразованием тела письма, и через router/transport сделать, с передачей тела письма для обработки во внешний скрипт, и через передачу в скрипт message-id поиска и преобразования письма в spool'е. Всё равно после, не смог я преобразованное письмо завернуть обратно в exim на доставку.
Видимо мозгов у меня не хватает чтобы провернуть подобное.
Пошел другим путем. Написал, пока только для outlook (в офисе, всё равно, все в основном, только ими пользуются), VBA-скрипт с преобразованием.