Hi René,
ich habe Deiner Lösung mal die gleichen "Optimierungen" zukommen lassen, die postmap offenbar benötigt und das "@" im CONCAT ergänzt (damit mal nicht eine Domain Teil einer anderen sein kann), die Klammern um die IF expressions hattest Du ja schon:
SELECT IF( ( SELECT COUNT(*) FROM `mail_virtual` WHERE `email` = 'ronny@i-t-sys.de' ) > 0, ( SELECT `policy_greylist` FROM `mail_users` RIGHT JOIN `mail_virtual` ON `mail_users`.`id` = `mail_virtual`.`popaccountid` WHERE `mail_virtual`.`email` = 'ronny@i-t-sys.de' ) , ( SELECT `policy_greylist` FROM `mail_users` RIGHT JOIN `mail_virtual` ON `mail_users`.`id` = `mail_virtual`.`popaccountid` WHERE `mail_virtual`.`email` LIKE (CONCAT('%%@','%d')) AND `mail_virtual`.`iscatchall` = 1 ) )
Fazit:
policy:gesetzt, catchall:gesetzt (+ erwartetes Resultat, -nicht erwartetes Resultat) ------------------------------------- + Konto ronny@ angefragt liefert die policy - Alias info@ angefragt liefert ein leeres Resultat (exit 0) + fiktiven catach-all Alias angefragt liefert die policy
policy:entfernt, catchall:gesetzt --------------------------------------- - Konto ronny@ angefragt liefert postmap Fehler + Alias info@ angefragt liefert ein leeres Resultat (exit 0) - fiktiven catach-all Alias angefragt liefert postmap Fehler
policy:entfernt, catchall:entfernt ---------------------------------------- - Konto ronny@ angefragt liefert postmap Fehler + Alias info@ angefragt liefert ein leeres Resultat (exit 0) + fiktiven catach-all Alias angefragt liefert leeres Resultat (exit 0)
policy:gesetzt, catchall:entfernt --------------------------------------- + Konto ronny@ angefragt liefert die policy - Alias info@ angefragt liefert ein leeres Resultat (exit 0) - fiktiven catach-all Alias angefragt liefert leeres Resultat (exit 0)
Der postmap-Fehler ist wie bei morphiums Lösung :
postmap: warning: table "mysql:/root/mysql-rene": empty lookup result for: "ronny@i-t-sys.de" -- ignored (Adresse natürlich variabel)
Mit freundlichen Grüßen / Kind regards Ronny Seffner -- Ronny Seffner | Alter Viehweg 1 | 01665 Klipphausen
www.seffner.de | ronny@seffner.de | +49 35245 72950