1/* VERP address extractor. 2 Copyright (C) 2008-2021 Sergey Poznyakoff 3 4 This program is free software; you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 3, or (at your option) 7 any later version. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License 15 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 16 17module 'verp'. 18#pragma regex push +extended 19 20func verp_extract_user(string email, string domain) 21 returns string 22do 23 if email matches "(.*)=%domain@.*" 24 string s \1 25 if s matches '.*\+([^\+]+)$' and validuser(\1) 26 return \1 27 elif s matches 'sentto-[0-9]{7}-[0-9]{4}-[0-9]{10}-(.*)$' and validuser(\1) 28 return \1 29 fi 30 fi 31 return "" 32done 33 34#pragma regex pop 35