From 8dc756f319858bf8a6bbe228b8e7ef62d5d77aac Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Mon, 01 Feb 2016 08:25:00 -0500
Subject: [PATCH] Fix bug in long recipients list parsing for cases where recipient name contained @-char (#1490653)
---
program/lib/Roundcube/rcube_smtp.php | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/program/lib/Roundcube/rcube_smtp.php b/program/lib/Roundcube/rcube_smtp.php
index fc3f28c..4f5dd0f 100644
--- a/program/lib/Roundcube/rcube_smtp.php
+++ b/program/lib/Roundcube/rcube_smtp.php
@@ -459,15 +459,19 @@
}
$addresses = array();
+ $recipients = preg_replace('/[\s\t]*\r?\n/', '', $recipients);
$recipients = rcube_utils::explode_quoted_string(',', $recipients);
reset($recipients);
foreach ($recipients as $recipient) {
$a = rcube_utils::explode_quoted_string(' ', $recipient);
foreach ($a as $word) {
- if (strpos($word, "@") > 0 && $word[strlen($word)-1] != '"') {
- $word = preg_replace('/^<|>$/', '', trim($word));
- if (in_array($word, $addresses) === false) {
+ $word = trim($word);
+ $len = strlen($word);
+
+ if ($len && strpos($word, "@") > 0 && $word[$len-1] != '"') {
+ $word = preg_replace('/^<|>$/', '', $word);
+ if (!in_array($word, $addresses)) {
array_push($addresses, $word);
}
}
--
Gitblit v1.9.1