Здраствуйте, уважаемые читатели. Сегодня мы рассмотрим стандартную функцию из состава 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.html следующей структуры:
Итак, нам осталось создать последний файлик thank.html:
Набрали, все сохранили? Теперь скопируйте эти три файла в директорию домашнего сервера или сервера в Сети. Все! Конечно, программку можно было сделать еще универсальнее, но оставляю это удовольствие для вас.