You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
936 B
CFEngine3
24 lines
936 B
CFEngine3
dbpath = /data/main.db
|
|
query =
|
|
SELECT destination
|
|
FROM
|
|
(SELECT destination, email, wildcard, localpart, localpart||'@'||alternative.name AS alt_email FROM alias LEFT JOIN alternative ON alias.domain_name = alternative.domain_name
|
|
UNION
|
|
SELECT (CASE WHEN forward_enabled=1 THEN (CASE WHEN forward_keep=1 THEN email||',' ELSE '' END)||forward_destination ELSE email END) AS destination, email, 0 as wildcard, localpart, localpart||'@'||alternative.name as alt_email FROM user LEFT JOIN alternative ON user.domain_name = alternative.domain_name
|
|
UNION
|
|
SELECT '@'||domain_name as destination, '@'||name as email, 0 as wildcard, '' as localpart, NULL AS alt_email FROM alternative)
|
|
WHERE
|
|
(
|
|
wildcard = 0
|
|
AND
|
|
(email = '%s' OR alt_email = '%s')
|
|
) OR (
|
|
wildcard = 1
|
|
AND
|
|
'%s' LIKE email
|
|
)
|
|
ORDER BY
|
|
wildcard ASC,
|
|
length(localpart) DESC
|
|
LIMIT 1
|