diff options
| -rw-r--r-- | CHANGELOG | 1 | ||||
| -rw-r--r-- | program/lib/Roundcube/rcube.php | 27 | 
2 files changed, 17 insertions, 11 deletions
| @@ -14,6 +14,7 @@ CHANGELOG Roundcube Webmail  - Fix bug where creating subfolders in shared folders wasn't possible without ACL extension (#1490113)  - Fix reply scrolling issue with text mode and start message below the quote (#1490114)  - Fix possible issues in skin/skin_path config handling (#1490125) +- Fix lack of delimiter for recipient addresses in smtp_log (#1490150)  RELEASE 1.0.3  ------------- diff --git a/program/lib/Roundcube/rcube.php b/program/lib/Roundcube/rcube.php index 8f39c7a70..6582d89a3 100644 --- a/program/lib/Roundcube/rcube.php +++ b/program/lib/Roundcube/rcube.php @@ -1458,7 +1458,7 @@ class rcube          // send thru SMTP server using custom SMTP library          if ($this->config->get('smtp_server')) {              // generate list of recipients -            $a_recipients = array($mailto); +            $a_recipients = (array) $mailto;              if (strlen($headers['Cc']))                  $a_recipients[] = $headers['Cc']; @@ -1558,19 +1558,24 @@ class rcube              // remove MDN headers after sending              unset($headers['Return-Receipt-To'], $headers['Disposition-Notification-To']); -            // get all recipients -            if ($headers['Cc']) -                $mailto .= $headers['Cc']; -            if ($headers['Bcc']) -                $mailto .= $headers['Bcc']; -            if (preg_match_all('/<([^@]+@[^>]+)>/', $mailto, $m)) -                $mailto = implode(', ', array_unique($m[1])); -              if ($this->config->get('smtp_log')) { +                // get all recipient addresses +                if (is_array($mailto)) { +                    $mailto = implode(',', $mailto); +                } +                if ($headers['Cc']) { +                    $mailto .= ',' . $headers['Cc']; +                } +                if ($headers['Bcc']) { +                    $mailto .= ',' . $headers['Bcc']; +                } + +                $mailto = rcube_mime::decode_address_list($mailto, null, false, null, true); +                  self::write_log('sendmail', sprintf("User %s [%s]; Message for %s; %s",                      $this->user->get_username(), -                    $_SERVER['REMOTE_ADDR'], -                    $mailto, +                    rcube_utils::remote_addr(), +                    implode(', ', $mailto),                      !empty($response) ? join('; ', $response) : ''));              }          } | 
