ICQ без Аськи
Александр ОНИЩУК xakepa_in@ukr.net
Здраствуйте, уважаемые читатели. Сегодня мы
рассмотрим стандартную функцию из состава PHP четвертой версии для
отправки писем - mail() - на примере организации обмена
сообщениями через ICQ.
Как мы сможем эту функцию использовать? Действительно, <рыть>
будем под ICQ. А так как эта функция многофункциональна, мы сегодня
попытаемся <расширить общительность>, а точнее, заставим ее посылать
сообщения ICQ-пользователям, не прибегая к помощи самой тети Аси,
через web-интерфейс с помощью обычных e-mail. У каждого пользователя
ICQ по сути есть некий почтовый ящик формата
ICQ UIN@pager.mirabilis.com, где вместо ICQ UIN нужно
вставить только номер своего друга или подруги. Такой почтовый адрес
мы и будем использовать для пересылки сообщений. Я так когда-то (и
сейчас при необходимости) посылал сообщения своим друзьям - все
нормально работает, как видите, доселе бодрствую. Поэтому приступим.
Я полагаю, что связка Апач+РНР4+MySQL у вас настроена и
работает, в противном случае смотрите соответствующие статьи
Артема Шманцырева (см. цикл <Сервер племени апачей>,
материалы из №№38 (209), 40 (211)). Замечу только, что для
работы функции mail() необходимо при установке РНР указать сервер
электронной почты - иначе ничего работать не будет.
Возможность автоматической посылки e-mail по Сети, минуя
использование внешних программ - одно из самых мощных средств
РНР, эта функция встроена в сам язык. Синтаксис функции отправки
письма такой:
Функция mail() посылает сообщение с телом $msg (это может быть и
многострочная строка, т.е. переменная, содержащая в себе несколько
строк, разделенных символом перевода строки (в нашем случае это \n и
\r)) по адресу $to. Можно также задать адреса нескольких
получателей, разделив их адреса пробелами в параметре $to. Например:
Можно также все адреса задать где-то в одном месте (переменной,
константе, массиве), а потом вставлять по мере необходимости. Но,
здесь можно попасться еще вот на чем: русских и украинских кодировок
в мире существует множество. Поэтому от того, насколько правильно вы
перекодируете письмо, зависит, прочтет ли его получатель. Впрочем,
<универсально правильное> решение существует. Мы сделаем по-своему:
будем передавать функции mail() только адрес получателя и текст
письма, а заголовок и тему будем печатать в самом сообщении.
Например:
Видите новую строку - Content-type? Она указывает
кодировку windows-1251. Пустая строка необходима, чтобы
почтовая программа смогла правильно разобрать письмо в целом и
правильно его перекодировать.
Теперь от теории перейдем непосредственно к самой программе.
Назовем ее Анонимный пейджер. Во-первых, программка будет
выводить некую форму, в которой нужно ввести свое имя - ведь
должен же ваш друг знать, от кого пришло сообщение, не правда ли?
Там же будем вводить сам номер Аськи и само сообщение, для чего
прилепим где-то рядом кнопки Отправить и Очистить.
Теперь воспользуемся знакомой функцией mail(). Ее синтаксис в нашем
случае будет таким:
Создаем файл pager.php, открываем и... сохраняем следующее:
Все, с программкой закончили. Надеюсь, все понятно. Если нет, то
присмотритесь к комментариям в тексте программы. Теперь надо создать
файл pager.html следующей структуры:
Итак, нам осталось создать последний файлик - thank.html:
Набрали, все сохранили? Теперь скопируйте эти три файла в
директорию домашнего сервера или сервера в Сети. Все! Конечно,
программку можно было сделать еще универсальнее, но оставляю это
удовольствие для вас.
До следующей встречи!
|