コード例 #1
0
 protected static function initMailer()
 {
     $backend = "mail";
     I2CE::getConfig()->setIfIsSet($backend, "/modules/Mailer/mail_server_backend");
     I2CE::getConfig()->setIfIsSet(self::$params, "/modules/Mailer/mail_server_params", true);
     I2CE::getConfig()->setIfIsSet(self::$headers, "/modules/Mailer/mail_message_headers", true);
     if (class_exists('Mail', false)) {
         self::$method = 'pear';
         $allowed_backends = array("mail", "smtp", "sendmail");
     } else {
         I2CE::raiseError("No Mail class : try 'sudo apt-get install pear-mail'");
         self::$method = 'localhost';
         $allowed_backends = array("localhost");
     }
     if (!in_array($backend, $allowed_backends)) {
         I2CE::raiseError("Mailing backend {$backend} is not in list: " . implode(" ", $allowed_backends));
         self::$method = false;
         return false;
     }
     if (self::$method == 'pear') {
         if (array_key_exists('auth', self::$params) && self::$params['auth'] == 1) {
             self::$params['auth'] = true;
         }
         try {
             self::$pear_mailer =& Mail::factory($backend, self::$params);
         } catch (Exception $e) {
             I2CE::raiseError("Could not create pear mailer:\n" . $e->getMessage());
             self::$method = false;
             return false;
         }
     }
 }