/* VERP address extractor. Copyright (C) 2008-2020 Sergey Poznyakoff This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ module 'verp'. #pragma regex push +extended func verp_extract_user(string email, string domain) returns string do if email matches "(.*)=%domain@.*" string s \1 if s matches '.*\+([^\+]+)$' and validuser(\1) return \1 elif s matches 'sentto-[0-9]{7}-[0-9]{4}-[0-9]{10}-(.*)$' and validuser(\1) return \1 fi fi return "" done #pragma regex pop