From 619ac550706ac4cb3e68f01a6eda60da3d038180 Mon Sep 17 00:00:00 2001 From: mattab Date: Tue, 26 Jan 2016 19:06:26 +1300 Subject: Replace some characters in Email subject and Email attachments filename Fixes #9631 --- core/Mail.php | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'core/Mail.php') diff --git a/core/Mail.php b/core/Mail.php index 454fcd377c..192c5a94e5 100644 --- a/core/Mail.php +++ b/core/Mail.php @@ -127,6 +127,18 @@ class Mail extends Zend_Mail } } + public function createAttachment($body, $mimeType = null, $disposition = null, $encoding = null, $filename = null) + { + $filename = self::sanitiseString($filename); + return parent::createAttachment($body, $mimeType, $disposition, $encoding, $filename); + } + + public function setSubject($subject) + { + $subject = self::sanitiseString($subject); + return parent::setSubject($subject); + } + /** * @param string $email * @return string @@ -154,4 +166,18 @@ class Mail extends Zend_Mail { return isset($url['host']) && !Url::isLocalHost($url['host']); } + + /** + * Replaces characters known to appear incorrectly in some email clients + * + * @param $string + * @return mixed + */ + static public function sanitiseString($string) + { + $search = array('–', '’'); + $replace = array('-', '\''); + $string = str_replace($search, $replace, $string); + return $string; + } } -- cgit v1.2.3