Skip to content

Commit

Permalink
Fix #2752: Domain recipient for address rewrite
Browse files Browse the repository at this point in the history
  • Loading branch information
PseudoResonance committed Nov 12, 2024
1 parent dc5a281 commit 40f6d69
Showing 1 changed file with 16 additions and 4 deletions.
20 changes: 16 additions & 4 deletions data/web/inc/functions.address_rewriting.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,13 @@ function recipient_map($_action, $_data = null, $attr = null) {
);
return false;
}
if (!filter_var($new_dest, FILTER_VALIDATE_EMAIL)) {
if (is_valid_domain_name($new_dest)) {
$new_dest_sane = '@' . idn_to_ascii($new_dest, 0, INTL_IDNA_VARIANT_UTS46);
}
elseif (filter_var($new_dest, FILTER_VALIDATE_EMAIL)) {
$new_dest_sane = $new_dest;
}
else {
$_SESSION['return'][] = array(
'type' => 'danger',
'log' => array(__FUNCTION__, $_action, $_data, $_attr),
Expand All @@ -308,7 +314,7 @@ function recipient_map($_action, $_data = null, $attr = null) {
(:old_dest, :new_dest, :active)");
$stmt->execute(array(
':old_dest' => $old_dest_sane,
':new_dest' => $new_dest,
':new_dest' => $new_dest_sane,
':active' => $active
));
$_SESSION['return'][] = array(
Expand Down Expand Up @@ -351,7 +357,13 @@ function recipient_map($_action, $_data = null, $attr = null) {
);
continue;
}
if (!filter_var($new_dest, FILTER_VALIDATE_EMAIL)) {
if (is_valid_domain_name($new_dest)) {
$new_dest_sane = '@' . idn_to_ascii($new_dest, 0, INTL_IDNA_VARIANT_UTS46);
}
elseif (filter_var($new_dest, FILTER_VALIDATE_EMAIL)) {
$new_dest_sane = $new_dest;
}
else {
$_SESSION['return'][] = array(
'type' => 'danger',
'log' => array(__FUNCTION__, $_action, $_data, $_attr),
Expand All @@ -378,7 +390,7 @@ function recipient_map($_action, $_data = null, $attr = null) {
WHERE `id`= :id");
$stmt->execute(array(
':old_dest' => $old_dest_sane,
':new_dest' => $new_dest,
':new_dest' => $new_dest_sane,
':active' => $active,
':id' => $id
));
Expand Down

0 comments on commit 40f6d69

Please sign in to comment.