Урок 6: Отправка электронной почты с помощью веб-формы
В предыдущих уроках было показано несколько способов пересылки данных между страницами. Взаимодействие отдельных страниц создает ощущение целостности сайта. Более того, это позволяет владельцам сайта предоставлять посетителю возможность выбирать и настраивать нужную услугу. Одним словом, благодаря пересылке данных несколько страниц могут функционировать как одно целое, что является значительным достижением, учитывая неспособность протокола HTTP запоминать данные.
Несмотря на то, что описанные ранее приемы по пересылке данных применяются довольно часто, бывают ситуации, когда данные требуется переслать в другое место. Иногда возникает необходимость просто сохранить данные для извлечения в дальнейшем (например, в базу данных). В другом случае нужно переслать информацию определенному человеку. В этом уроке показано, как на сайте Newland Tours получить информацию от посетителя и переслать ее агенту по туризму. Поскольку компании Newland Tours на самом деле не существует, для проверки работы сценария нужно пересылать сообщения на собственный адрес.
Если применяется локальная версия IIS или ColdFusion, то потребуется настроить систему для пересылки электронных сообщений.
При использовании локальной версии Apache и PHP (в Windows или Mac OS) отправка сообщений, к сожалению, будет невозможна. PHP предоставляет все средства для отправки сообщений, и они описаны в этом уроке. Однако Apache не содержит встроенного почтового сервера, как IIS или ColdFusion. Большинство хостинг-провайдеров, использующих Apache и PHP, как правило, предоставляют и почтовые серверы, – так что на удаленном сервере код, приведенный в этом уроке, будет работать. Но протестировать его работоспособность можно будет, только если используется ASP/IIS или ColdFusion, либо если файлы размещены на удаленном сервере, предоставляющим почтовые услуги (в этом случае подходит любая серверная модель).
увеличить изображение
Рис. 6.1. Данные, полученные при помощи этой формы, будут использованы для генерации электронного сообщения
Помимо настройки почтового сервера будут применяться специальные почтовые объекты. Слово "объекты" употребляется в контексте понятия "объектно-ориентированное программирование". Особенно много объектов и незнакомых синтаксических конструкций встретится при работе с ASP.
Тех, у кого нет реального опыта программирования, применение объектов для создания эффективного кода может озадачить. На самом же деле, в объектно-ориентированном программировании (ООП) объекты создаются по аналогии с объектами реального мира. Таким образом, основная идея ООП заключается в том, чтобы облегчить и сделать программирование более удобным как в процессе написания кода, так и при его поддержке. Тем не менее, поначалу может показаться, что объекты излишне сложны. В этой сложности и заключается огромный потенциал объектов (даже несмотря на то, что процесс их использования максимально упрощен). Пользователи PHP и ColdFusion работают с объектами не столь интенсивно, как пользователи ASP, но в любом коде объекты встречаются довольно регулярно.
Во время урока придется прибегнуть к ручному кодированию. Несмотря на удобство пользовательского интерфейса Dreamweaver, иногда приходится выходить за рамки дизайна страницы и диалоговых окон и вводить собственный код. Волноваться по этому поводу не следует, – книга рассчитана на тех, у кого нет достаточного опыта программирования, поэтому каждый шаг сопровождается подробными комментариями.
Что будет изучаться:
- настройка IIS или ColdFusion для отправки электронных сообщений (в случае локального применения IIS или ColdFusion);
- использование почтовых объектов для генерации электронного сообщения, вводимого с веб-страницы;
- создание формы для получения данных от пользователя;
- наполнение электронного сообщения данными, введенными в форму;
- проверка правильности заполнения формы при помощи сценария, выполняемого на стороне клиента.
Время выполнения
На выполнение этого урока потребуется примерно час.
Файлы урока
Исходные файлы:
Lesson06/Start/newland/contact.asp
Lesson06/Start/newland/generic_template.asp
Lesson06/Start/newland/index.asp
Итоговые файлы:
Lesson06/Complete/newland/contact.asp
Lesson06/Complete/newland/messageSent.asp
Lesson06/Complete/newland/generic_template.asp
Lesson06/Complete/newland/index.asp
Почтовый сервис SMTP
Повсюду в уроке применяется почтовый сервис SMTP. SMTP (Simple Mail Transfer Protocol – простой протокол пересылки электронной почты) является сетевым стандартом для пересылки электронных сообщений, которые затем принимаются и интерпретируются различными клиентами, в том числе, POP3 и IMAP.
Возможно, ключевая особенность протокола SMTP состоит в том, что он употребляется только для отправки, а не для получения сообщений. Таким образом, настройка сервера для использования протокола SMTP дает возможность отправлять сообщения при помощи приложений (которые, однако, не будут завершенными почтовыми сервисами). Существуют возможности, позволяющие настроить локальный компьютер как на отправку, так и на получение сообщений, но в этой книге они не рассматриваются.
Целью урока является создание веб-приложения, генерирующего сообщения и пересылающего их по сети. Как вскоре станет ясно, подобные приложения очень полезны.
Настройка системы для отправки сообщений по протоколу SMTP
Прежде чем отправлять сообщения посредством веб-приложения, следует убедиться в том, что сервер, на котором работает приложение, способен отправлять электронную почту. Кто-то использует локальную версию IIS для создания ASP-страниц, кто-то — локальную версию ColdFusion, кто-то — локальную версию Apache, а некоторые пользователи подключаются к удаленным серверам, на которых установлены ASP, ColdFusion или Apache/PHP. В зависимости от способа подключения к серверу, в этом задании нужно следовать различным последовательностям шагов, как описано в приведенном ниже списке:
- разработчикам ASP-приложений, использующим локальный сервер IIS (Windows 2000 или Windows XP), следует прочитать раздел "Настройка IIS для отправки электронной почты (пользователям ASP)";
- разработчикам, применяющим ColdFusion на локальном компьютере, необходимо ознакомиться с разделом "Настройка ColdFusion для отправки электронной почты";
- к сожалению, разработчики PHP, использующие локальный сервер Apache, не имеют возможности протестировать созданные страницы, поскольку Apache не поддерживает протокол SMTP. В любом случае, следует выполнять упражнения для этого урока, но отправить сообщения не удастся. Однако если в будущем появится возможность загрузить приложение на удаленный веб-сервер, страницы будут работать надлежащим образом. В этом случае следует прочитать раздел "Написание кода для отправки сообщения";
- разработчикам ASP, ColdFusion и PHP-приложений, применяющим удаленные серверы (подключенный сетевой диск или FTP-протокол), нужно уточнить у администратора сервера, поддерживается ли на сервере возможность использования SMTP-протокола, а также убедиться, что для каталога сайта на сервере есть разрешение на отправку электронных сообщений по протоколу SMTP. После этого следует перейти к разделу "Написание кода для отправки сообщения".