22 lines
899 B
Diff
22 lines
899 B
Diff
# UNDF: UNDF-2026-000000873
|
|
--- a/modules/Emails/Email.php
|
|
+++ b/modules/Emails/Email.php
|
|
@@ -2242,12 +2242,14 @@
|
|
//// HANDLE EMAILS HAND-WRITTEN
|
|
$contactRecipients = array();
|
|
$knownEmails = array();
|
|
+ $knownEmailsSet = array(); // O(1) lookup instead of O(N) in_array
|
|
|
|
foreach ($addrs_arr as $i => $v) {
|
|
if (trim($v) == "") {
|
|
continue;
|
|
} // skip any "blanks" - will always have 1
|
|
@@ -2254,8 +2256,9 @@
|
|
preg_match("/[A-Z0-9._%-\']+@[A-Z0-9.-]+\.[A-Z]{2,}/i", (string) $v, $match);
|
|
|
|
|
|
- if (!empty($match[0]) && !in_array(trim($match[0]), $knownEmails)) {
|
|
+ if (!empty($match[0]) && !isset($knownEmailsSet[trim($match[0])])) {
|
|
$knownEmails[] = $match[0];
|
|
+ $knownEmailsSet[trim($match[0])] = true;
|
|
$recipient['email'] = $match[0];
|