Статьи

Отправка электронной почты в ASP

Отправка электронной почты на страницах Active Server не так сложна, как кажется. Все, что вам нужно, это страница ASP, содержащая ваш код, хост, который поддерживает ASP и CDONTS (объекты данных для совместной работы для Windows NT Server), и базовые знания об активных страницах сервера.

CDONTS предоставляет вам объекты и классы, которые позволяют отправлять электронную почту со страницы ASP. CDONTS работает только в операционных системах Windows NT / 2000, но имеет мощные функции, позволяющие:

  • прикреплять файлы при отправке электронной почты,
  • отправить письмо в формате HTML,
  • использовать функции Carbon Copy (CC) и Blind Carbon Copy (BCC), как в любом почтовом клиенте,
  • установить приоритет электронной почты

… и это только начало! Опять же, процесс не так сложен, как кажется.

Создать CDONTS

Прежде всего, мы должны создать экземпляр CDONTS на сервере, используя этот код:

<%  Set Mail=Server.CreateObject("CDONTS.NewMail")  %> 

В приведенном выше коде вы можете заменить Mail любой другой переменной, но вы должны постоянно использовать эту переменную. Теперь, когда мы создали экземпляр CDONTS на сервере, нам нужно ввести необходимые значения.

Введите ваши значения

Первым вводом должен быть Получатель, которому мы отправим электронное письмо. Чтобы добавить адрес получателя, используйте:

 <%  Mail.to=" [email protected]"  %> 
  Mail.to состоит из той же переменной, которую мы использовали для именования экземпляра нашего CDONTS.NewMail The после .  сообщает объекту адрес, на который должно быть отправлено письмо.  Итак, теперь наш код выглядит так: 

 <%  Set Mail=Server.CreateObject("CDONTS.NewMail")  Mail.to=" [email protected]"  %> 

Теперь нам нужно сообщить объекту адрес электронной почты Отправителя, используя:

 <%  Mail.From=" [email protected]"  %> 

Поле From после Mail. указывает адрес электронной почты отправителя. Адрес электронной почты всегда должен появляться в кавычках. С этим дополнением наш код становится:

 <%  Set Mail=Server.CreateObject("CDONTS.NewMail")  Mail.To="[email protected]"  Mail.From="[email protected]"  %> 

Теперь вы уже поняли концепцию использования основных классов, поэтому давайте посмотрим, как добавить строку «Тема» в электронное письмо. Если вы еще не догадались, вот как это сделать:

 <%  Mail.Subject="Just testing my script"  %> 

Теперь код:

 <%  Set Mail=Server.CreateObject("CDONTS.NewMail")  Mail.To="[email protected]"  Mail.From="[email protected]"  Mail.Subject="Just testing my script"  %> 

Все, что осталось сейчас, это содержимое письма, которое мы добавляем так:

 <%  Mail.Body="Hey! I am sending this email through an ASP Page, and  guess what? I haven't learnt much yet, but know that ASP is very  powerful."  %> 

Класс Body представляет содержимое письма, которое мы отправляем. Он может содержать любой текст, но не распознает теги HTML - он просто отправляет их как обычный текст.

Подводя итог, наш код выглядит следующим образом:

 <%  Set Mail=Server.CreateObject("CDONTS.NewMail")  Mail.To="[email protected]"  Mail.From="[email protected]"  Mail.Subject="Just testing my script"  Mail.Body="Hey! I am sending this email through an ASP Page and  guess what? I haven't learnt much yet, but know that ASP is very  powerful."  %> 

OK. Теперь пришло время отправить письмо, используя:

 <%  Mail.Send  %> 

И это должно сделать это! Наш код аккуратный и должен успешно отправить письмо. Давайте в последний раз посмотрим на полный код:

 <%  Set Mail=Server.CreateObject("CDONTS.NewMail")  Mail.To="[email protected]"  Mail.From="[email protected]"  Mail.Subject="Just testing my script"  Mail.Body="Hey! I am sending this email through an ASP Page and  guess what? I haven't learnt much yet, but know that ASP is very  powerful."  Mail.Send  Set Mail=nothing  %> 

Последняя строка: Set Mail=nothing освобождает экземпляр объекта - и, следовательно, некоторые ресурсы - с сервера. Это порадует администратора вашего сервера!

Теперь вы можете скопировать и вставить приведенный выше код в ваш любимый редактор, сохранить его как SendingEmail.asp (запомните расширение файла) и загрузить его на свой веб-сайт. Не забудьте заменить адреса электронной почты Получателя и Отправителя на свои. Теперь вы можете посетить страницу, которую вы загрузили, и прочитать электронное письмо, которое вы отправили через страницу ASP.

Получение адресов

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

 <%  ' In case of requesting recipient's address from a form  Mail.to=request.form("txteMail")  'txteMail is just a variable, you can change it as per your form  %>   <%  'In case of Querystring  Mail.To=Request.QueryString("email")  ' eMail is just a variable, again you can change it as per your page  %> 

Дополнительная помощь?

Теперь мы изучили, как отправлять электронную почту через ASP-страницу, и обнаружили, что это чрезвычайно просто. Если у вас возникли какие-либо проблемы или вопросы, или вы обнаружили неправильную электронную почту ASP, попробуйте опубликовать свои проблемы на форумах SitePoint . Наши постоянные члены будут рады помочь вам!

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