From a1733f06ae1031f0c5ae5ea2e92380ac5ce56494 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Mon, 29 Dec 2008 09:43:45 -0500
Subject: [PATCH] - fix identity name quoting when sending mail as per discussion in #1485654

---
 program/steps/mail/sendmail.inc |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index 21e1a7f..8e8d139 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -64,7 +64,13 @@
     {
     $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'] . '>';

--
Gitblit v1.9.1