Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #30, МАЙ 2003 г.

Mail Sender

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-034-1


(vme@front.ru) & ilich (ilich@atrus.ru)

Мы тут посмотрели на тебя всей командой, оценили то, что ты творишь, и пришли к совокупному мнению, что ты серьезный чувак, так как хочешь сделать в нете что-то полезное. А посему решили тебе помочь. Знаешь, достаточно часто меня очень напрягает необходимость пользоваться некоторыми моими мыльниками лишь только через проги а-ля "The Bat!", "M$ Outlook" и тому подобным. Хочется стать в некоторой степени независимым от набора софта на тачке. Хочется иметь все и вся через web-интерфейс! У тебя, я полагаю, те же спазмы.

PHP в общих чертах

Ты наверняка заметил, что когда ты регишь доменное имя второго уровня, тебе дают, в зависимости от размера твоих ягод... твоего кошелька, один или не один мыльник. Такие мыла хороши своим именем, но не особо хороши в плане легкости использования. Видишь ли, не все умные и волосатые дядьки, творившие сии сервисы, такие умные и волосатые. Некоторые из них заломались (или силенок не хватило :)) сделать удобный доступ через web-интерфейс к мылам раздаваемых доменов. Короче говоря, программа на сегодня - позволить себе (подразумеваем: тебе) слать много-много писем, не отходя от осла IE и его компании.

Замечу, чтоб данная байда фунциклировала корректно, надо направлять процесс ее деятельности на тех самых волосатых дядек, ведь только у них есть нужные нам почтовые сервера (точнее нам нужен только один из них - SMTP). К тому же нам, в принципе, по фигу, дадут тебе мыло или нет, ибо наличие данных серверов является для нас единственно приоритетным.

Для начала создадим хтмльку, а в ней форму, в которую будут вводиться тема сообщения, его текст и адрес получателя. Для этого в файле mail.html напиши (после <body>):

<form name="frm" action="mail_send.php" method="post">

Выражение "mail_send.php" - это имя файла со сценарием, который будет вызываться при нажатии кнопки "отослать". Для того чтобы форма выглядела более симпатично, настоятельно рекомендую оформить ее в виде таблицы. Также нам нужны два однострочных текстовых поля для адреса и темы и одно многострочное для текста сообщения. Обязательно укажи для каждого поля имя (атрибут "name"). В конце добавь две кнопки: для отправки сообщения и для очистки формы (<input type="submit"> и <input type="reset"> соответственно). Ну вот, собственно, форма и готова. Теперь напишем сценарий, который будет все это отправлять адресату. Сценарий будет на PHP, хочешь ты этого или нет. Итак, начинаем. Сначала создай файл mail_send.php, в нем напиши стандартное начало HTML-файла.

<html>

<head>

<title>PHP Mail Sender</title>

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">

</head>

<body>

<?php

$rcptto = $HTTP_POST_VARS['rcptto'];

if ($rcptto=="")

{

print "<h4>Необходимо ввести получателя сообщения!</h4>";

print "<a href=\"javascript:history.back(1);\"><<Назад</a>";

} elseif (preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/",$rcptto)) {

$subj = $HTTP_POST_VARS['subject'];

Содержание  Вперед на стр. 030-034-2