summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2008-12-29 14:43:45 +0000
committeralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2008-12-29 14:43:45 +0000
commita5127face26da2eab566d68c15e172280284942f (patch)
tree84dc02afae8f7f8a727a39bf71ffeb2d94ebf708
parent3c60767a3936eaeeade73e1f392f6973b8c5604f (diff)
- fix identity name quoting when sending mail as per discussion in #1485654
git-svn-id: https://svn.roundcube.net/trunk@2193 208e9e7b-5314-0410-a742-e7e81cd9613c
-rw-r--r--roundcubemail/program/steps/mail/sendmail.inc8
1 files changed, 7 insertions, 1 deletions
diff --git a/roundcubemail/program/steps/mail/sendmail.inc b/roundcubemail/program/steps/mail/sendmail.inc
index 21e1a7ff1..8e8d13919 100644
--- a/roundcubemail/program/steps/mail/sendmail.inc
+++ b/roundcubemail/program/steps/mail/sendmail.inc
@@ -64,7 +64,13 @@ function rcmail_get_identity($id)
{
$out = $sql_arr;
$out['mailto'] = $sql_arr['email'];
- $name = strpos($sql_arr['name'], ",") ? '"'.$sql_arr['name'].'"' : $sql_arr['name'];
+
+ // Special chars as defined by RFC 822 need to in quoted string (or escaped).
+ if (preg_match('/[\(\)\<\>\\\.\[\]@,;:"]/', $sql_arr['name']))
+ $name = '"' . addcslashes($sql_arr['name'], '"') . '"';
+ else
+ $name = $sql_arr['name'];
+
$out['string'] = rcube_charset_convert($name, RCMAIL_CHARSET, $OUTPUT->get_charset());
if ($sql_arr['email'])
$out['string'] .= ' <' . $sql_arr['email'] . '>';