Beispiel #1
0
 /**
  * Производит рассылку по майллисту.
  *
  * @param Mail_Message $mail
  * @param array        $list
  * @param string       $dir
  *
  * @return string
  */
 static function maillist($mail, $list, $dir = '../bin/maillist')
 {
     $dir = rtrim($dir, '/');
     CMS::mkdirs("{$dir}/messages");
     CMS::mkdirs("{$dir}/recipients");
     Core::load('Mail.List');
     Mail_List::option('root', $dir);
     $emails = array();
     foreach ($list as $k => $item) {
         if (is_string($k) && is_string($item)) {
             $item = array('To' => $k, 'Unsubscribe-List' => $item, 'UNSUBSCRIBE' => $item);
         } else {
             if (is_string($item)) {
                 $item = array('To' => $item);
             }
         }
         if (is_string($k) && !isset($item['To'])) {
             $item['To'] = $k;
         }
         $emails[] = $item;
     }
     Mail_List::Spawner($mail, $emails)->id(time() . rand(1111, 9999))->spawn();
 }
Beispiel #2
0
 /**
  * Формирует один фаил с заголовками и параметрами
  *
  * @param     $container
  * @param int $index
  */
 protected function head($container, $index)
 {
     $values = array();
     $headers = Mail_Message::Head();
     foreach ($container as $k => $v) {
         if (array_search($k, Mail_List::option('headers'), true) !== false) {
             $headers->field($k, $v);
         } else {
             $values[] = sprintf("-%s: %s", $k, MIME::encode_qp($v, null));
         }
     }
     $path = sprintf('%s/%s.%06d', Mail_List::option('root') . '/recipients', $this->id, $index);
     IO_FS::rm($path);
     $f = IO_FS::File($path);
     $f->open('w')->write($headers->encode() . (count($values) ? implode("\n", $values) . "\n" : ''))->close();
     $f->chmod(0664);
 }