##############################################################################
# FormMail                        Version 1.6                                #
# Copyright 1996-1997 Matt Wright mattw@worldwidemart.com                    #
# Created 06/09/95                Last Modified 05/02/97                     #
# Matt's Script Archive, Inc.:    http://www.worldwidemart.com/scripts/      #
##############################################################################
# If you run into any problems while trying to configure this scripts, help  #
# is available.  The steps you should take to get the fastest results, are:  #
#       1) Read this file thoroughly.                                        #
#       2) Consult the Matt's Script Archive Frequently Asked Questions:     #
#               http://www.worldwidemart.com/scripts/faq/                    #
#       3) If you are still having difficulty installing this script, send   #
#          e-mail to: scripts-help@tahoenet.com                              #
#          Include any error messages you are receiving and as much detail   #
#          as you can so we can spot your problem.  Also include the variable#
#          configuration block that is located at the top of the script.     #
#                                                                            #
# Hopefully we will be able to help you solve your problems.  Thank you.     #
##############################################################################
# COPYRIGHT NOTICE                                                           #
# Copyright 1995 - 1997 Matthew M. Wright  All Rights Reserved.              #
#                                                                            #
# FormMail may be used and modified free of charge by anyone so long as this #
# copyright notice and the comments above remain intact.  By using this      #
# code you agree to indemnify Matthew M. Wright from any liability that      #
# might arise from its use.                                                  #
#                                                                            #
# Selling the code for this program without prior written consent is         #
# expressly forbidden.  In other words, please ask first before you try and  #
# make money off of my program.                                              #
#                                                                            #
# Obtain permission before redistributing this software over the Internet or #
# in any other medium.	In all cases copyright and header must remain intact #
##############################################################################

FormMail is a universal WWW form to E-mail gateway.  There is only one
required form input tag which must be specified in order for this script to
work with your existing forms.  Other hidden configuration Fields can also
be used to enhance the operation of FormMail on your site.  Version 1.6 of
FormMail contains a few minor bug fixes, optimized code and more comments.
The biggest change in this version is that by default, form fields are now
sorted as they appear in the form.  Error pages were also beautified a
little and two new configuration fields were created.  Read the History for
a more complete list of changes.

The script, FormMail.pl, needs to be placed in your server's cgi-bin and the 
anonymous WWW user must have the ability to read/execute the script.  If 
you do not have access to your server's cgi-bin, yet you can execute cgi 
scripts, you may want to try adding a .cgi extension to the FormMail.pl, 
so you could move it to FormMail.cgi.

Установка FormMail скрипта:
===============================

В FormMail.pl имеются только две переменные которые нуждаются в настройке.
Это $mailprog и @referers. Как это сделать написано прямо в FormMail.pl.
Так же в первой строке скрипта надо указать Ваш путь к perl если он
отличается от используемого по умолчанию.

Necessary Variables:
--------------------

 $mailprog = '/usr/lib/sendmail';
    Эта переменная определяет положение sendmail на Вашем сервере.
    Если $mailprog сконфигурирована неправильно скрипт работать не будет..

  @referers = ('worldwidemart.com','206.31.72.203');
 Эта переменная определяет сервера с которых скрипт будет 
 работать. Защищает Вас от несанкционированного доступа к скрипту.
 Если Вы хотите что бы скрипт можно было использовать с других серверов
 надо их здесь указать. 

Больше НИЧЕГО в FormMail.pl менять не надо.
Остальные настройки производятся в форме расположенной на Вашей веб 
странице.
-----------------------------------------------------------------------------

Конфигурация Формы:
===================

В конфигурации формы необходимо указать адрес Вашей FormMail.pl, 
и метод POST или GET, большими буквами.
Пример:
	<form method="POST" action="http://appscr.virtualave.net/cgi-bin/formmail/FormMail.pl">
	<p><input type="submit" value="Отправить" name="B1">
	<input type="reset" value="Очистить" name="B2"></p>
	</form>
Обязательные поля формы:
======================

Обязательно иметь в форме вы должны только одно поле 
поле получателя почты.

поле:       recipient

Описание: Это поле определяет того кому пойдёт почта после выполнения
		скрипта. Скорее всего Вы будете это конфигурировать как 
		скрытое поле, с Вашим email. Тогда почта будет приходить 
		только к Вам.

Синтаксис:
             <input type=hidden name="recipient" value="email@your.host.com">

-----------------------------------------------------------------------------

Необязательные поля:
=====================

поле:       subject

Описание: Определяет тему для писем приходящих после выполнения 
		данной формы.  Если это поле не включить то тема всех писем 
		будет: WWW Form Submission
             
Синтаксис:
             Если Вы желаете выбрать тему:
              <input type=hidden name="subject" value="Your Subject - тема письма">

             Позволить пользователю выбирать тему:
              <input type=text name="subject">

-----------------------------------------------------------------------------

поле:       email

Описание: В это поле пользователь сможет вставить свой email адрес
		что бы сообщить его Вам.

Синтаксис:
             <input type=text name="email">

-----------------------------------------------------------------------------

поле:       realname

Описание: realname  поле позволит пользователям вводить их 
	имя. Это поле полезено для целей идентификации, 
	и будет помещено в заголовок письма.
            
Синтаксис: 
             <input type=text name="realname">

-----------------------------------------------------------------------------

поле:       redirect

Описание: Позволяе переадресовать пользователя к определённому
		адресу после заполнения формы. 
		Например к странице с благодарностью за заполнение.

Синтаксис:
             Вы определяете адрес куда пользователь 
		 попадает после заполнения формы:
               <input type=hidden name="redirect" 
                       value="http://your.host.com/to/file.html">

             Пользователь сам вводит адрес куда 
		 он попадёт после заполнения:
                <input type=text name="redirect">

-----------------------------------------------------------------------------

поле:       required


Описание: Предназначено что бы сделать желаемые поля формы 
		обязательными к заполнению. Без заполнения этих полей 
		пользователь не сможет отправить форму. Выбор страниц 
		показывающих ошибку в заполнении будет рассмотрен позже.


Синтаксис:
             Например, если вы хотите чтобы поля email и телефон
		были обязательны к заполнению вставьте такую строчку:

               <input type=hidden name="required" value="email,телефон">

-----------------------------------------------------------------------------

поле:       env_report


Описание: Позволяет включать переменные среды в сообщение которое Вы
		получите после заполнения кем нибудь формы. Вы можете узнать 
		его операционную систему, хост, IP, и так далее:

       REMOTE_HOST     - Посылает имя хоста, делающго запрос.
       REMOTE_ADDR     - Посылает адрес IP 
                             
       REMOTE_USER     - Если сервер поддерживает идентификацию и скрипт
                              			Защищен, это - имя пользователя, которое он имеет
					обычно не устанавливается

       HTTP_USER_AGENT - Броузер пользователя 

             Имеются и другие переменные, но эти самые полезные.
		 О других можно узнать по адресу:
     http://www.cgi-resources.com/Documentation/Environment_Variables/

Синтаксис:
             
          <input type=hidden name="env_report" value="REMOTE_HOST,
                                                      HTTP_USER_AGENT">

-----------------------------------------------------------------------------

поле:       sort

Version:     1.4 & Up

Описание: Это поле позволяет сортировать данные которые 
		вы получите в письме

Синтаксис:
             По алфавиту:
               <input type=hidden name="sort" value="alphabetic">

             Произвольно:
               <input type=hidden name="sort" value="order:name1,name2,
                                                   name3,etc...">

-----------------------------------------------------------------------------

поле:       title


Описание: Это поле позволяет задать заголовок страницы на которую
		пользовательпопадёт если не было использовано поле redirect

Синтаксис:
             Если вы хотите заголовок 'Спасибо за информацию.':
              <input type=hidden name="title" value="Спасибо за информацию.">

-----------------------------------------------------------------------------

поле:       return_link_url


Описание: Это поле определяет ссылку для return_link_title (см. ниже) на
		странице на которую попадёт пользователь после заполнения формы.
		При использовании поля redirect работать не будет. 
Синтаксис:
             <input type=hidden name="return_link_url" 
				             value="http://your.host.com/main.html">

-----------------------------------------------------------------------------

поле:       return_link_title


Описание: Это текст ссылки которая была определена в return_link_url.
		На завершающей странице это будет выглядеть так:

             <ul>
              <li><a href="return_link_url">return_link_title</a>
             </ul>

Синтаксис:
             <input type=hidden name="return_link_title"
                                                  value="Возврат на первую страницу">

-----------------------------------------------------------------------------

поле:       missing_fields_redirect


Описание: Это поле позволяет задать адрес на который пользователь попадёт
		если не заполнит обязательные поля формы. См. required.

Синтаксис:
             <input type=hidden name="missing_fields_redirect"
                                    value="http://your.host.com/error.html">

-----------------------------------------------------------------------------

поле:       background

Version:     1.3 & Up

Описание: Фоновое изображение результирующей страницы.

Синтаксис:
             <input type=hidden name="background"
                                     value="http://your.host.com/image.gif">

-----------------------------------------------------------------------------

поле:       bgcolor


Описание: Определяет цвет фона результирующей страницы. 
		Не устанавливайте если используете redirect.

Синтаксис:
             Белый фон:
              <input type=hidden name="bgcolor" value="#FFFFFF">

-----------------------------------------------------------------------------

поле:       text_color


Описание: То же что и bgcolor, только для цвета текста.

Синтаксис:
             Чёрный текст:
              <input type=hidden name="text_color" value="#000000">

-----------------------------------------------------------------------------

поле:       link_color


Описание: То же для цвета ссылок.

Синтаксис:
             Красные ссылки:
              <input type=hidden name="link_color" value="#FF0000">

-----------------------------------------------------------------------------

поле:       vlink_color


Описание: То же для виденных ссылок.

Синтаксис:
             Синий:
              <input type=hidden name="vlink_color" value="#0000FF">

-----------------------------------------------------------------------------

поле:       alink_color

Version:     1.4 & Up

Описание: Активная ссылка.

Синтаксис:
             Синий:
              <input type=hidden name="alink_color" value="#0000FF">

-----------------------------------------------------------------------------
Вы так же можете добавлять любое кол-во любых других полей в эту форму.
-----------------------------------------------------------------------------

Как можно использовать этот скрипт:

1) Оперативная связь посетителей с Вами.
2) Можете дать возможность всем пользоваться Вашим скриптом 
	со своих страниц. Например кто то хочет иметь такую возвратную
	форму, но не имеет доступа к CGI.
3) Один этот скрипт обработает все формы с Вашего сайта.

-----------------------------------------------------------------------------

History:
Version 1.0     06/11/95  -  This script was created.
Version 1.1     08/03/95  -  A major hole in the script which allowed users 
                             to run commands under your server's uid was 
                             disabled, thanks to Paul Phillips, who noticed
                             the error.
                          -  The ability to redirect the user to a specified
                             HTML file after they filled out a form was 
                             added.
Version 1.2     09/23/95  -  If the form поле is one of the required or 
                             optional 'special' полеs, such as redirect, 
                             recipient, subject, email, realname, etc... the
                             script will not print these полеs to either
                             your mail message or to the user's screen when
                             they are returned to a generic form response.
                             It helps you so that things do not get 
                             duplicated.
Version 1.3     01/21/96  -  Much needed update finally completed
                          -  Added form полеs: env_report, bgcolor, 
                             background, link_color, vlink_color, title,
                             text_color, return_link_title, return_link_url 
                             and required.
                          -  Security hole, which allowed any user on any 
                             system to bum off of your FormMail script, has
                             been plugged up with the @referers variable.
                          -  Report style in return html and e-mail touched 
                             up a bit.
Version 1.4	    01/23/96  -  Added options: sort, alink_color 
                          -  Fixed a few bugs from Version 1.3, namely the 
                             fact that the link_colors weren't working well.
                          -  FormMail now supports both the GET and POST 
                             methods.
Version 1.5     02/05/96  -  Sorting of полеs in E-Mail Response Fixed.
                          -  print_config option added.
Version 1.6     05/02/97  -  Sorting of полеs by default was fixed to now
                             sort in the order the полеs are passed to
                             FormMail from the web browser, which is usually
                             the same order as they appear in the HTML form.
                          -  The sort order: directive, env_report and 
                             print_config parsing routines were made to 
                             better compensate for line breaks and extra
                             spaces in input for ease of use.
                          -  Redirect error causing the redirect option to
                             incorrectly work with https (secure servers)
                             was fixed.
                          -  Input of a '0' in a regular form поле now
                             recognized as input and sent back to user.
                          -  Output of non-filled in form полеs suppressed.
                          -  E-mail addresses checked for correct Синтаксис if
                             designated a required поле.
                          -  полеs only printed if they contain a value or
                             if the print_blank_полеs option is set to 1.
                          -  missing_полеs_redirect added so you can route
                             users who don't completely fill out the form to
                             a pre-made HTML page.
                          -  Parts of code optimized, especially in respect
                             to the way config variables are handled.
-----------------------------------------------------------------------------
Matt Wright - mattw@worldwidemart.com - http://www.worldwidemart.com/scripts/