[Web] Feature: Expand alias over alias domains
This commit is contained in:
@@ -1934,6 +1934,35 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
|
||||
);
|
||||
continue;
|
||||
}
|
||||
if ($_data['expand_alias'] === true || $_data['expand_alias'] == 1) {
|
||||
$stmt = $pdo->prepare("SELECT `goto`, GROUP_CONCAT(CONCAT(SUBSTRING(`alias`.`address`, 1, LOCATE('@', `alias`.`address`) - 1), '@', `alias_domain`.`alias_domain`)) AS `missing_alias`
|
||||
FROM `alias` JOIN `alias_domain` ON `alias_domain`.`target_domain` = `alias`.`domain`
|
||||
WHERE CONCAT(SUBSTRING(`alias`.`address`, 1, LOCATE('@', `alias`.`address`) - 1), '@', `alias_domain`.`alias_domain`) NOT IN (
|
||||
SELECT `address` FROM `alias` WHERE `address` != `goto`
|
||||
)
|
||||
AND `alias`.`address` NOT IN (
|
||||
SELECT `address` FROM `alias` WHERE `address` = `goto`
|
||||
)
|
||||
AND `address` = :address ;");
|
||||
$stmt->execute(array(
|
||||
':address' => $address
|
||||
));
|
||||
$missing_aliases = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
if (!empty($missing_aliases['missing_alias'])) {
|
||||
mailbox('add', 'alias', array(
|
||||
'address' => $missing_aliases['missing_alias'],
|
||||
'goto' => $missing_aliases['goto'],
|
||||
'sogo_visible' => 1,
|
||||
'active' => 1
|
||||
));
|
||||
}
|
||||
$_SESSION['return'][] = array(
|
||||
'type' => 'success',
|
||||
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
||||
'msg' => array('alias_modified', htmlspecialchars($address))
|
||||
);
|
||||
continue;
|
||||
}
|
||||
$domain = idn_to_ascii(substr(strstr($address, '@'), 1), 0, INTL_IDNA_VARIANT_UTS46);
|
||||
if ($is_now['address'] != $address) {
|
||||
$local_part = strstr($address, '@', true);
|
||||
|
Reference in New Issue
Block a user