Уважаемые коллеги! Подскажите пожалуйста как изменить код: PHP: if (!CModule::IncludeModule("subscribe")) return; if (preg_match("#for[^<]+<([^>]+)>#", $arMessageFields['BODY'],$regs)) { $email = $regs[1]; // адрес, который надо исключить из рассылки $rs=CSubscription::GetByEmail($email); $f = $rs->Fetch(); CSubscription::Delete($f['ID']); // удаляем адрес из рассылки return true; } else return false; так что бы в preg_match можно было найти все адреса почты, которые находятся в <> или ' ' , не зависимо от впереди стоящего текста! Уже всю голову сломал с этим кодом... Сканнер работает так: http://dev.1c-bitrix.ru/community/blogs/howto/375.php
как то так наверное PHP: $email = "/[\<\"]{1,}([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+){1,}[\>\"]{1,}/i"; preg_match_all($email,$arMessageFields['BODY'],$emails); мылы будут в $emails
Code: if (!CModule::IncludeModule("subscribe")) return; $email = "/[\<\"]{1,}([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+){1,}[\>\"]{1,}/i"; if (preg_match_all($email, $arMessageFields['BODY'],$regs)) { //выводим мылы var_dump($regs) // дальше твой функционал $email = $regs[1]; // адрес, который надо исключить из рассылки $rs=CSubscription::GetByEmail($email); $f = $rs->Fetch(); CSubscription::Delete($f['ID']); // удаляем адрес из рассылки return true; } else return false; ты просил < заменить на ковычки . сделай так PHP: $email = "/[.\"]{1,}([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+){1,}[.\"]{1,}/i"; это будет выбирать отовсюду. ( любые символы а не только кавычки или . а вообще фигли парится . сделай просто PHP: $email = "/([a-z0-9_-]+@[a-z0-9_-]+\.[a-z0-9_-])+{1,}/i"; это тебе вообще все мылы со страницы достанет