match вхождения

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
absokolov
проходил мимо
Сообщения: 6
Зарегистрирован: 2012-02-15 13:43:37

match вхождения

Непрочитанное сообщение absokolov » 2012-06-21 13:36:31

Здравствуйте уважаемые форумчане.
Собственно возникла потребность вырезать кусочек из заголовка subject для дальнейшей обработки.
Пытался сделать ч-з match, но на сколько я понял после обработки невозможно получить вхождения в регулярку.
Каким образом это можно сделать еще? Или все таки match может вернуть все что нашел?

P.S. Текст который требуется вырезать упакован в круглые скобки "{text}". Причем сам текст разный почти в каждом письме.

Может ли кто-то что-то посоветовать?
Спасибо!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: match вхождения

Непрочитанное сообщение hizel » 2012-06-21 13:58:18

чего то в вашем вопросе не хватает, например, что за mta вы пользуете. как думаете?
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

absokolov
проходил мимо
Сообщения: 6
Зарегистрирован: 2012-02-15 13:43:37

Re: match вхождения

Непрочитанное сообщение absokolov » 2012-06-21 14:26:19

Да, прошу прощение. Exim 4.72

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: match вхождения

Непрочитанное сообщение hizel » 2012-06-21 15:01:58

Код: Выделить всё

${if match {$h_subject}{\N\{(.*)})\N}{$1}} 
засунет то что между {} в $1, как то так
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

absokolov
проходил мимо
Сообщения: 6
Зарегистрирован: 2012-02-15 13:43:37

Re: match вхождения

Непрочитанное сообщение absokolov » 2012-06-21 15:24:31

hizel писал(а):

Код: Выделить всё

${if match {$h_subject}{\N\{(.*)})\N}{$1}} 
засунет то что между {} в $1, как то так
Ну сама регулярка - это не проблема.
Я попробовал Ваш вариант, и со вставкой "{$1}" письма вообще не попадают. Просто такое чувство что кондишн завершается фальшем.
Хотя если без этой вставки - то работает.

Тут как раз главный вопрос в том, как записать данные из регулярки в переменные....

P.S. правда переменную переименовал немного: "$h_subject:"

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: match вхождения

Непрочитанное сообщение hizel » 2012-06-21 15:56:13

я не предлагал готового решения
Тут как раз главный вопрос в том, как записать данные из регулярки в переменные....
читайте документацию, 11 глава, про $0,$1, etc, а устанавливайте через set, типа

Код: Выделить всё

set acl_m1 = ${if bla bla}
надеюсь вы помните, что subject где-то в районе acl_check_data появляется?
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

absokolov
проходил мимо
Сообщения: 6
Зарегистрирован: 2012-02-15 13:43:37

Re: match вхождения

Непрочитанное сообщение absokolov » 2012-06-21 17:22:37

hizel писал(а):я не предлагал готового решения
Тут как раз главный вопрос в том, как записать данные из регулярки в переменные....
читайте документацию, 11 глава, про $0,$1, etc, а устанавливайте через set, типа

Код: Выделить всё

set acl_m1 = ${if bla bla}
надеюсь вы помните, что subject где-то в районе acl_check_data появляется?
Да, конечно помню )))
Спасибо Вам за помощь.
Вот что получилось и успешно работает:

Код: Выделить всё

set acl_m_match = ${if match{$header_Subject:}{\N\{(.*)\}\N}{$1}}