<?php
/***************************************************************************
- * Copyright (C) 2003-2008 Polytechnique.org *
+ * Copyright (C) 2003-2009 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
}
}
+ static private function formatUser(PlUser $user)
+ {
+ return '"' . $user->fullName() . '" <' . $user->bestEmail() . '>';
+ }
+
/**
* converts all : Foo Bar Baz <quux@foobar.org> into "Foo Bar Baz" <quux@foobar.org> 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);
}
}
}
+ 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) {
$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',