aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/Mail/Message.php
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2022-10-24 16:45:24 +0200
committerJulius Härtl <jus@bitgrid.net>2022-11-03 16:59:12 +0100
commitfd036f774f92c3f3f8abacd11e8b6d9fc3e75ee5 (patch)
treea174a2e00d7eff256b35328e4385a93e66545260 /lib/private/Mail/Message.php
parent3b084e5fbcab6fea00685a81922635ec1428e8aa (diff)
downloadnextcloud-server-fd036f774f92c3f3f8abacd11e8b6d9fc3e75ee5.tar.gz
nextcloud-server-fd036f774f92c3f3f8abacd11e8b6d9fc3e75ee5.zip
Do not throw errors when invalid setTo email is provided
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'lib/private/Mail/Message.php')
-rw-r--r--lib/private/Mail/Message.php18
1 files changed, 11 insertions, 7 deletions
diff --git a/lib/private/Mail/Message.php b/lib/private/Mail/Message.php
index c1b08b4e231..8b94f44ddba 100644
--- a/lib/private/Mail/Message.php
+++ b/lib/private/Mail/Message.php
@@ -78,14 +78,18 @@ class Message implements IMessage {
$convertedAddresses = [];
foreach ($addresses as $email => $readableName) {
- if (!is_numeric($email)) {
- [$name, $domain] = explode('@', $email, 2);
- $domain = idn_to_ascii($domain, 0, INTL_IDNA_VARIANT_UTS46);
- $convertedAddresses[$name.'@'.$domain] = $readableName;
+ $parsableEmail = is_numeric($email) ? $readableName : $email;
+ if (strpos($parsableEmail, '@') === false) {
+ $convertedAddresses[$parsableEmail] = $readableName;
+ continue;
+ }
+
+ [$name, $domain] = explode('@', $parsableEmail, 2);
+ $domain = idn_to_ascii($domain, 0, INTL_IDNA_VARIANT_UTS46);
+ if (is_numeric($email)) {
+ $convertedAddresses[] = $name . '@' . $domain;
} else {
- [$name, $domain] = explode('@', $readableName, 2);
- $domain = idn_to_ascii($domain, 0, INTL_IDNA_VARIANT_UTS46);
- $convertedAddresses[$email] = $name.'@'.$domain;
+ $convertedAddresses[$name . '@' . $domain] = $readableName;
}
}