@@ -285,7 +285,13 @@ function recipient_map($_action, $_data = null, $attr = null) {
285
285
);
286
286
return false ;
287
287
}
288
- if (!filter_var ($ new_dest , FILTER_VALIDATE_EMAIL )) {
288
+ if (is_valid_domain_name ($ new_dest )) {
289
+ $ new_dest_sane = '@ ' . idn_to_ascii ($ new_dest , 0 , INTL_IDNA_VARIANT_UTS46 );
290
+ }
291
+ elseif (filter_var ($ new_dest , FILTER_VALIDATE_EMAIL )) {
292
+ $ new_dest_sane = $ new_dest ;
293
+ }
294
+ else {
289
295
$ _SESSION ['return ' ][] = array (
290
296
'type ' => 'danger ' ,
291
297
'log ' => array (__FUNCTION__ , $ _action , $ _data , $ _attr ),
@@ -308,7 +314,7 @@ function recipient_map($_action, $_data = null, $attr = null) {
308
314
(:old_dest, :new_dest, :active) " );
309
315
$ stmt ->execute (array (
310
316
':old_dest ' => $ old_dest_sane ,
311
- ':new_dest ' => $ new_dest ,
317
+ ':new_dest ' => $ new_dest_sane ,
312
318
':active ' => $ active
313
319
));
314
320
$ _SESSION ['return ' ][] = array (
@@ -351,7 +357,13 @@ function recipient_map($_action, $_data = null, $attr = null) {
351
357
);
352
358
continue ;
353
359
}
354
- if (!filter_var ($ new_dest , FILTER_VALIDATE_EMAIL )) {
360
+ if (is_valid_domain_name ($ new_dest )) {
361
+ $ new_dest_sane = '@ ' . idn_to_ascii ($ new_dest , 0 , INTL_IDNA_VARIANT_UTS46 );
362
+ }
363
+ elseif (filter_var ($ new_dest , FILTER_VALIDATE_EMAIL )) {
364
+ $ new_dest_sane = $ new_dest ;
365
+ }
366
+ else {
355
367
$ _SESSION ['return ' ][] = array (
356
368
'type ' => 'danger ' ,
357
369
'log ' => array (__FUNCTION__ , $ _action , $ _data , $ _attr ),
@@ -378,7 +390,7 @@ function recipient_map($_action, $_data = null, $attr = null) {
378
390
WHERE `id`= :id " );
379
391
$ stmt ->execute (array (
380
392
':old_dest ' => $ old_dest_sane ,
381
- ':new_dest ' => $ new_dest ,
393
+ ':new_dest ' => $ new_dest_sane ,
382
394
':active ' => $ active ,
383
395
':id ' => $ id
384
396
));
0 commit comments