+ static function encodeStringQP($string)
+ {
+ if (!preg_match('/^[\x20-\x7e]*$/', $string)) {
+ $string = '=?UTF-8?Q?' . preg_replace('/[^\x21-\x3C\x3e\x40-\x7e]/e', 'PlMailer::encodeQP("\0")', $string)
+ . '?=';
+ }
+ return $string;
+ }
+
+
+ static function encodeQP($char)
+ {
+ return sprintf('=%02X', ord($char));
+ }
+
+ public function setSubject($subject)
+ {
+ return parent::setSubject(self::encodeStringQP($subject));
+ }
+