Аргерих Л. О языке РНР. Часть 3. Страница 5


Без дальнейших хлопот посмотрим, как создать класс NNTP, с помощью ко­торого можно отправить статью в выбранную телеконференцию.

Создание класса NNTP

Класс NNTP, который мы создадим, в целом внешне выглядит так же, как класс SMTP, который мы создали ранее, но методы buildHeaders() и talk() должны быть реализованы иначе. Можно обойтись без некоторых заголов­ков электронной почты, но необходимо добавить пару новых. Новый метод talk() анализирует коды ответов сервера NNTP. Класс My_Nntp можно по­строить как расширение класса My_Smtp_Mime_Mail.

Свойства

<?php

//

include("./my_smtp_mime^mail_class.php");

class extends My_Smtp_Mime_Mail

{

Зададим удаленный сервер NNTP и номер порта, на котором он ждет соеди­нений:

var $nntp_host = var $nntp_port = 119;

Нужна также переменная для хранения телеконференций, в которую будет посылаться статья. Если телеконференций несколько, они перечисляются через запятую:

var $newsgroups = Переменная для хранения заголовка References:

var $ references = ";.- Строки с дополнительными сообщениями об особых ошибках:

var $ERR_NNTP_HOST_NOT_SET = 'NNTP host not set! '; var $ERR_NNTP_CONNECTIQN_FAILED = 'Failed to connect to the specified NNTP Host!';

var $ERR„NNTP_N0T_C0NNECTED = 'Establish a connection to an NNTP server

first! ';

var $ERR_EMPTY_FROM = "Snpty From header!";

var $ERR_EMPTY_NEWSGROUPS = "No newsgroup(s) specified!";'

var $ERR_GROUP_WITHOUT_ARG = 'GROUP command needs an argument!'; • var $ERR_POSTJITHOUT_ARG = 'POST command with empty article content!';

var $ERR_UNKNOWN_RESPONSE_FROM_SERVEF = 'Unknowr response from the server!' ;

var $ERR_POSTING_NOT_ALLOWED = "Posting not allowed on" this server!"; var $ERR_GROUP_POSTING_NOT_ALLOWED = "Posting not allowed on this newsgroup!";

var $ERRJ3R0UP_FAILED = 'GROUP command failed!'; var $ERR_NO_SUCH_GROUP = 'No such group!"; var $ERR_POST_FAILED = 'POSTcommand failed!'; var $ERR_QUIT_FAILED = 'QUIT.command failed!';

connect ()

Данный метод осуществляет соединение с сервером NNTP, устанавливая свойство $socket. Обратите внимание, что для подключения к серверу необ­ходимо иметь соответствующие права доступа. Большинство серверов NNTP осуществляет контроль доступа по IP-адресу клиента, проверяя допусти­мость его домена. В этом методе проверяется также, разрешена ли публика­ция на указанном сервере. Код ответа 201 сигнализирует, что публикация за­прещена, и тогда этот метод возвращает false, записав предварительно соот­ветствующее значение в свойство для хранения внутреннего сообщения об ошибке:




В последнее время облачные технологии позволяют делать массу вещей, которые были закрыты для многих. Например, виртуальная атс через интернет стала реальностью. И вы с помощью Манго Телеком будете пользоваться всеми преимуществами телефонной АТС.