X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=classes%2Fplmailer.php;h=e3e348d27c6815cab2474b390d82180021a87f75;hb=0d40ddec57550773766a877a250d60dd8dd3052a;hp=ca85633aadec72b6e8ee95c1fc5ee8ef0a780d77;hpb=402a0780f42b948525fbef6db2e3c1bfe59b883d;p=platal.git diff --git a/classes/plmailer.php b/classes/plmailer.php index ca85633..e3e348d 100644 --- a/classes/plmailer.php +++ b/classes/plmailer.php @@ -1,6 +1,6 @@ fullName() . '" <' . $user->bestEmail() . '>'; + } + /** * converts all : Foo Bar Baz into "Foo Bar Baz" which is RFC compliant */ private function correct_emails($email) { + if ($email instanceof PlUser) { + $email = self::formatUser($email); + } return preg_replace('!(^|, *)([^<"]+?) *(<[^>]*>)!u', '\1"\2" \3', $email); } @@ -307,15 +315,18 @@ class PlMailer extends Mail_Mime { } } + public function sendTo(PlUser &$user) + { + $this->addTo($user); + $this->assign_by_ref('user', $user); + return $this->send($user->isEmailFormatHtml()); + } + public function send($with_html = true) { $this->processPage($with_html); 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); } $addrs = Array(); foreach(Array('To', 'Cc', 'Bcc') as $hdr) { @@ -336,6 +347,18 @@ class PlMailer extends Mail_Mime { $dests[] = "{$a->mailbox}@{$a->host}"; } + // Support for "catch-all" mail address : all emails are sent to + // admin_email instead of actual recipients + global $globals; + if($globals->catchmail) { + require_once 'Mail/RFC822.php'; + if(@Mail_RFC822::isValidInetAddress($globals->admin_email)){ + $dests = array($globals->admin_email); + }else if(@Mail_RFC822::isValidInetAddress($globals->core->admin_email)){ + $dests = array($globals->core->admin_email); + } + } + // very important to do it in THIS order very precisely. $body = $this->get(array('text_charset' => $this->charset, 'text_encoding' => '8bit',