X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=classes%2Fplmailer.php;h=ca85633aadec72b6e8ee95c1fc5ee8ef0a780d77;hb=adc69ced9c75421c5ee596fbd0a3426fffb9940c;hp=f7a913c9293a7445b006afe04b9df6b1cc82c6d9;hpb=179afa7fa79902e11498314d37fe4dbf452b3617;p=platal.git diff --git a/classes/plmailer.php b/classes/plmailer.php index f7a913c..ca85633 100644 --- a/classes/plmailer.php +++ b/classes/plmailer.php @@ -47,6 +47,7 @@ class PlMail extends Smarty $this->register_function('bcc', Array($this, 'addBcc')); $this->register_function('subject', Array($this, 'setSubject')); $this->register_function('add_header', Array($this, 'addHeader')); + $this->assign_by_ref('globals', $globals); } public static function &get(&$mailer, $tpl) @@ -195,6 +196,20 @@ class PlMailer extends Mail_Mime { return parent::setFrom($this->correct_emails($email)); } + static function encodeQP($char) + { + return sprintf('=%02X', ord($char)); + } + + public function setSubject($subject) + { + if (!preg_match('/^[\x20-\x7e]*$/', $subject)) { + $subject = '=?UTF-8?Q?' . preg_replace('/[^\x21-\x3C\x3e-\x7e]/e', 'PlMailer::encodeQP("\0")', $subject) + . '?='; + } + return parent::setSubject($subject); + } + public function addHeader($hdr,$val) { switch($hdr) { @@ -264,7 +279,11 @@ class PlMailer extends Mail_Mime { private function processPage($with_html = true) { if (!is_null($this->page)) { - $level = error_reporting(0); + global $globals; + if (!($globals->debug & DEBUG_SMARTY)) { + $level = error_reporting(0); + } + $this->page->assign_by_ref('globals', $globals); $this->page->run('head'); // process page headers $this->wiki = trim($this->page->run('wiki')); // get wiki if (!$this->wiki) { @@ -276,7 +295,9 @@ class PlMailer extends Mail_Mime { } } } - error_reporting($level); + if (!($globals->debug & DEBUG_SMARTY)) { + error_reporting($level); + } } if ($this->wiki) { $this->setTxtBody(MiniWiki::WikiToText($this->wiki, false, 0, 78)); @@ -289,7 +310,10 @@ class PlMailer extends Mail_Mime { public function send($with_html = true) { $this->processPage($with_html); - if (S::v('forlife')) { + if (S::user()) { + $this->addHeader('X-Org-Mail', S::user()->forlifeEmail()); + } else if (S::v('forlife')) { + // TODO(vzanotti): trash this code when hruid will be part of master. global $globals; $this->addHeader('X-Org-Mail', S::v('forlife') . '@' . $globals->mail->domain); }