Опубликован: 24.12.2006 | Доступ: свободный | Студентов: 2671 / 212 | Оценка: 4.51 / 4.22 | Длительность: 23:31:00

Урок 6: Отправка электронной почты с помощью веб-формы

< Урок 5 || Урок 6: 1234567 || Урок 7 >
  1. Настройте экземпляр таким образом, чтобы он мог отправлять нужную информацию на требуемый электронный адрес. Для этого перед закрывающим тегом %> (ASP) или </cfmail> (ColdFusion) добавьте приведенный ниже код. Пользователям PHP следует добавить указанный код в пустой области, созданной на шаге 3.

    Для ASP надо ввести следующий код ( yourname@yourserver.com заменяется действующим электронным адресом):

    cdoMessage.From="yourname@yourserver.com"
    cdoMessage.To="yourname@yourserver.com"
    cdoMessage.Subject="This is the message subject"
    cdoMessage.TextBody="This is the message body"
    cdoMessage.Send

    После этого следует добавить еще две строки кода:

    Set cdoMessage=Nothing
    Set cdoConfig=Nothing

    При использовании ColdFusion в теге <cfmail> нужно добавить следующий код ( yourname@yourserver.com следует заменить на действующий электронный адрес):

    <cfmail from="yourname@yourserver.com" to="yourname@yourserver.com" 
    subject="This is the Message Subject">

    После этого между открывающим и закрывающим тегами <cfmail> надо добавить следующий текст:

    This is the message body.

    Для PHP вводится код:

    <?
    mail('yourname@yourserver.com', 'This is the message subject', 'This is the message body.');
    ?>

    ASP и ColdFusion требуют указывать, от кого и кому отправлено сообщение, а также тему сообщения и его текст ( message body – тело сообщения).

    В ColdFusion используется легкий для чтения синтаксис вида атрибут="значение". Само сообщение располагается между тегами <cfmail> (остальные параметры указываются внутри открывающего тега <cfmail> ). Действие для сообщения, то есть отправка, в ColdFusion определяется автоматически.

    Примечание.В ASP для отправки сообщения вызывается метод Send. Перед этим требуется указать ряд параметров объекта Message, включая электронные адреса отправителя и получателя, а также тему сообщения и его текст. После вызова метода Send объекты cdoConfig и cdoMessage уничтожаются. Это позволяет впоследствии отправить другое сообщение при помощи тех же объектов.

    В итоге сценарий для ASP должен выглядеть таким образом:

    <%
    theSchema=http://schemas.microsoft.com/cdo/configuration/
    Set cdoConfig=server.CreateObject("CDO.Configuration")
    cdoConfig.Fields.Item(theSchema & "sendusing") = 2
    cdoConfig.Fields.Item(theSchema & "smtpserver") = "your.SMTP.server.com"
    cdoConfig.Fields.Update
    
    set cdoMessage=Server.CreateObject("CDO.Message")
    cdoMessage.Configuration=cdoConfig
    cdoMessage.From="yourname@yourserver.com"
    cdoMessage.To="yourname@yourserver.com"
    cdoMessage.Subject="This is the message subject"
    cdoMessage.TextBody="This is the message body"
    cdoMessage.Send
    
    Set cdoMessage=Nothing
    Set cdoConfig=Nothing
    %>

    Сценарий для ColdFusion должен выглядеть следующим образом:

    <cfmail from="yourname@yourserver.com" to="yourname@yourserver.com" 
    subject="This is the Message Subject">
    This is the message body.
    </cfmail>>

    Так же, как в ASP и ColdFusion, в PHP необходимо указывать адрес получателя, тему и текст сообщения. Однако адрес отправителя указывать не требуется. Более того, возможность указания адреса отправителя зависит от внешних факторов, основными из которых являются операционная система и почтовый сервер, с которыми взаимодействует сценарий PHP. В книге адрес отправителя указывать не требуется. Более подробная информация об указании отправителя в функции mail() языка PHP расположена по адресу: http://www.php.net/manual/en/function.mail.php.

  2. Сохраните файл и загрузите его на удаленный сервер. Щелкните в любом месте документа и нажмите клавишу (F12), чтобы протестировать его.

    При открытии страницы в браузере появится сообщение об отправке сообщения. Если вместо этого отображается сообщение об ошибке, а код написан правильно, значит, неверно настроен почтовый сервер. При использовании промежуточного или рабочего сервера следует связаться с его администратором и проконсультироваться по поводу исправления ошибок.

    В случае применения автономного компьютера с IIS придется исправлять ошибки самостоятельно. Здесь исправление проблемы может обернуться еще большими проблемами. Суть в том, что следует понимать код и знать, что он будет действовать на рабочем сервере, и его настройки позволяют отправлять электронную почту. Но прилагать так много усилий, чтобы провести несколько часов в состоянии стресса для поиска ошибок на сервере – не самый эффективный способ обучения разработке динамических веб-приложений. Иногда лучше просто перейти к следующему шагу.

    Для выполнения контрольного теста нужно проверить почту по указанному электронному адресу. Полученное сообщение должно выглядеть так же, как на примере, за исключением электронного адреса. Понятно, что это не самое интересное электронное сообщение, а поскольку его текст жестко вписан в код страницы, изменить содержимое нельзя.


    Если сообщение не получено, значит, произошла одна из возможных ошибок. Вероятнее всего, сервер неправильно настроен на отправку электронных сообщений по протоколу SMTP. Поэтому следует выполнить команды Control Panel\Administrative Tools\Services (Панель управления\Администрирование\Службы) и убедиться, что Simple Mail Transport Protocol помечен состоянием Started (Работает). Другой способ – это воспользоваться командами Control Panel\Administrative Tools\Internet Information Services (Панель управления\Администрирование\ Internet Information Services) (XP) или Internet Service Manager (Windows 2000), а потом выбрать компьютер с сервером и посмотреть свойства Default SMTP Virtual Server (Виртуальный сервер SMTP по умолчанию).

    Если используется ColdFusion, то, скорее всего, не было введено правильное доменное имя или IP-адрес сервера исходящей почты SMTP.

  3. Закройте документ messageSent.asp.

После того, как механизм отправки сообщения налажен, требуется сделать его полезным, добавив в сообщение осмысленное содержимое. Для этого будет создана форма получения от посетителя данных для сообщения, после чего данные будут переданы почтовому объекту, который, в свою очередь, отправит их (как бы) сотрудникам Newland Tours.

< Урок 5 || Урок 6: 1234567 || Урок 7 >