37 lines
1.2 KiB
PL/PgSQL
37 lines
1.2 KiB
PL/PgSQL
CREATE LANGUAGE plpgsql;
|
|
|
|
|
|
DROP FUNCTION IF EXISTS udf_forwarders_in();
|
|
DROP FUNCTION IF EXISTS udf_forwarders_in(TEXT,TEXT,TEXT,CHAR,BOOLEAN);
|
|
|
|
CREATE FUNCTION udf_forwarders_in(forewarders_str TEXT,
|
|
email_str TEXT,
|
|
vacation_domain TEXT ,
|
|
list_seperator CHAR ,
|
|
vacation_enable BOOLEAN)
|
|
RETURNS TEXT AS $$
|
|
DECLARE
|
|
return_str text;
|
|
local_email_part TEXT;
|
|
domain_email_part TEXT;
|
|
BEGIN
|
|
|
|
return_str = email_str;
|
|
|
|
IF vacation_enable THEN
|
|
local_email_part = substring(email_str, 1, position('@' in email_str) - 1);
|
|
domain_email_part = substring(email_str, position('@' in email_str) + 1 );
|
|
return_str = return_str || list_seperator || local_email_part || '#' || domain_email_part || '@' || vacation_domain;
|
|
END IF;
|
|
|
|
IF char_length(forewarders_str) > 7 THEN
|
|
return_str = return_str || list_seperator || forewarders_str;
|
|
END IF;
|
|
|
|
RETURN return_str;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
|
|
SELECT udf_forwarders_in('ckubu@oopen.de', 'admin@initiativenserver.de','autoreply.initiativenserver.de',',',TRUE);
|