PHP в деталях



         

ООП на службе почты


Что возьмём за объект? Правильно, письмо. При рассылке почты многим подписчикам надо будет поменять лишь адрес получателя.

class Message {

Свойства класса: содержимое письма, тема, тело письма и служебные заголовки.

class Message {

  var $text = "";

  var $to = "";

  var $subject = "Новости сайта Васи Пупкина";

  var $headers = "

From: \"Вася Пупкин\" <vasya@pupkin.ru>

Reply-to: \"Вася Пупкин\" <vasya@pupkin.ru>

Organization: Студия веб-дезигна Васи Пупкина

X-Mailer: PHP/4

X-Priority: 3 (Normal)

Content-Type: text/plain; charset=koi8-r

";

Конструктор объекта.

  function Message($text) {

    $this->text = $text;

    }

Функция отправки одного письма.

  function send() {

    mail(convert_cyr_string($this->to,"w","k"), convert_cyr_string($this->subject, "w", "k"), convert_cyr_string($this->text, "w", "k"), convert_cyr_string($this->headers, "w", "k"));

    }

Функция отправки писем всем подписчикам.

  function send_all($maillist) {

    if (is_object($maillist))

      if ($maillist->fetch())

        for ($a=0;$a<sizeof($addr);$a++) {

          $this->to = $maillist->addr[$a];

          $this->send();

          };

    }

  }

И это всё, что есть в классе Message. Список подписчиков хранится в объекте $maillist, который мы передаем в качестве параметра функции (естественно, в теле программы назвать можно его как угодно).

Вместе с классом Message я использую классы Database (пока поддерживает только MySQL, если кто-то пришлет то же самое для другой базы, буду много благодарен) и класс File, которые используются для получения списка адресатов.




Содержание  Назад  Вперед