Skip to content
Extraits de code Groupes Projets
Valider 619ac550 rédigé par mattab's avatar mattab
Parcourir les fichiers

Replace some characters in Email subject and Email attachments filename

Fixes #9631
parent 531c9b51
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -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;
}
}
<?php
/**
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Tests\Integration;
use Piwik\Mail;
class MailTest extends \PHPUnit_Framework_TestCase
{
public function getEmailFilenames()
{
return array(
array('January 3 – 9, 2010', 'January 3 - 9, 2010'),
array('Report <The><< ’s Coves - week January 18 – 24, 2016', 'Report <The><< \'s Coves - week January 18 - 24, 2016'),
);
}
/**
* @dataProvider getEmailFilenames
*/
public function test_EmailFilenamesAreSanitised($raw, $expected)
{
$this->assertEquals($expected, Mail::sanitiseString($raw));
}
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter