Отправка результатов формы по электронной почте без использования CGI-сценария
Как уже говорилось выше в этой главе, результаты (заполнения) формы представляют собой пары имя/значение, которые Web-браузер передает по адресу(т.е. по URL-адресу), указанному в атрибуте action дескриптора <form> формы, при нажатии посетителем кнопки Submit. Каждая пара имя/значение содержит имя name элемента формы и его значение value. Наверное, понять, что отправляет Web-браузер Web-серверу легче всего, заставив браузер передать результаты заполнения формы по электронной почте.
ПРАКТИКУМ
Например, атрибут action дескриптора <form> в первой строке следующего кода формы заставляет Web-браузер передавать результаты заполнения формы в виде сообщения электронной почты по адресу mailbox@smtpServer.com. (Для того чтобыотправить результаты заполнения формы по вашему адресу электронной почты, просто замените адрес mailbox@smtpServer.com на требуемый.)
<form name="MailToForm" action="mailto:mailbox@smtpServer.com"method="POST" title="Пpoвepкa MailTo" enctype="text/plain"><p>Имя: <input type="text" name="FirstName" size="15"/>Фамилия:<input type="text" name="LastName" size="20"/><br/>Адрес E-Mail:<input type="text" name="E-MailAddr" size="20"/></p><p>Области интересов:<br/>Операционные системы:<input type="checkbox" name="Win98" value="ON"/>Windows 98<input type="checkbox" name="WinXp" value="ON"/>Windows XP<input type="checkbox" name="WinNT" value="ON"/>Windows NT<br/>Оборудование:<input type="checkbox" name="DT" value="ON"/>Настольные компьютеры<input type="checkbox" name="LT" value="ON"/>IIopтaтивные компьютеры<input type="checkbox" name="PDA" value="ON"/>PDA<input type="checkbox" name="Prtr" value="ON"/>Принтеры<input type="checkbox" name="Mon" value="ON"/>Мониторы</р><p>Можем ли мы передавать ваш адрес электронной почты другим посетителям?<input type="radio" value="Yes" name="ShareEmail"/>Да<input type="radio" value="No" checked="checked" name="ShareEmail"/>Нет</р><p><input type="Submit" value="Отправить"/><input type="Reset" value="Очистить"/></р></form>
Если посетитель сайта заполнит форму, сгенерированную приведенным выше кодом и указанную на рис. 3.15, а затем нажмет кнопку Submit, Web-браузер отправит результаты формы электронной почте по адресу, указанному после mailto: в атрибуте action.
Рис. 3.15. Форма с данными, которые будут отправляться по электронной почте
Обратите внимание, что результаты формы включают имена элементов формы и введенные посетителем значения, разделенные знаками равно (=). Параметр"text/plain" в качестве значения атрибута enctype (вторая строка определения формы) указывает Web-браузеру, что результаты формы должны передаваться в виде открытого текста. Если бы в определение формы в качестве метода кодирования было установлено используемое по умолчанию значение application/x-www-form-uriencoded, Web-браузер передавал бы данные в виде одной строки с разделяющими запятыми, в которой имена и значения были бы разделены амперсантами (&). Тем не менее, независимо от типа кодирования, важно понимать, что Web-браузер передает результаты формы в виде пар имя/значение. Результаты заполнения формы включают имена всех полей ввода текста (как содержащих данные, так и пустых), но для флажков, переключателей и элементов списка выбора Web-браузер передает пары имя/значение только для выбранных элементов.
Следует иметь в виду, что использование maiito: в атрибуте action может работать не во всех браузерах. Для передачи результатов формы по электронной почте в соответствии с описанной выше схемой система посетителя сайта должна иметь соответствующим образом настроенную почтовую программу. Тем неменее, mailto: позволяет легко и быстро протестировать формы, передавая их результаты в виде открытого текста по вашему адресу электронной почты. С помощью mailto: можно передать данные формы (по электронной почте самому себе) без участия провайдера услуг Internet и без использования серверных CGI-сценариев. В главе 10, посвященной РНР, и главе 11, посвященной ASP, будет подробно рассказано об обработке результатов форм на Web-сервере. За счет использования серверных сценариев результаты заполнения формы можно отправлять по электронной почте (через почтовый сервер SMTP), даже если в системе посетителя не установлена почтовая программа.