2001 г

Web почта на ASP.

Вернер А. Р., центр ИнтернетИнтернет (произносится [интэрнэт]; англ.Internet)— всемирная система объединённых компьютерных сетей, построенная на использовании протокола IP и маршрутизации пакетов данных. Интернет образует глобальное информационное пространство, служит физической основой для Всемирной паутины и множества других систем (протоколов) передачи данных. Часто упоминается как «Всемирная сеть» и «Глобальная сеть». В обиходе иногда говорят «Инет». АСФ КемГУ.
Домашняя страничка.

Содержание:

Введение
1. Авторизация
2. Чтение почтового ящика пользователя
3. Чтение почтового сообщения
4. Создаем новое письмо
5. Адресная книга
6. Выводы

Введение.

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

Есть у такого решения много достоинств:

- платформенная независимость клиента;
- нет жесткой привязки клиентского рабочего места;
- для доступа к письмам не нужны POP3-сервер и клиент (иногда, правдаПравда— многозначное существительное. Входит в состав многих сложных терминов., все же нужны);
- для работы с почтовым ящиком используются стандартные программы для вебсерфинга и т. д.;

и недостатков:

- проблемы с плохими каналами при удаленном доступе;
- проблема безопасности;
- локализацияЛокализация программного обеспечения— процесс адаптации программного обеспечения к культуре какой-либо страны. Как частность— перевод пользовательского интерфейса, документации и сопутствующих файлов программы с одного языка на другой. сообщений (характерно для неанглоязычных систем) и др.

У нас такая проблема возникла в связи с использованием операционной системыСистема (от др.-греч. — «сочетание»)— множество взаимосвязанных элементов, обособленное от среды и взаимодействующее с ней, как целое. Windows NT и прокси-сервера для доступа к интернету. Подобная картинаКартина — произведение живописи, обладающее законченным характером (в отличие от эскиза и этюда) и самостоятельным художественным значением. В отличие от фрески или книжной миниатюры, картина не обязательно связана с определенным интерьером или определенной системой декорирования. Состоит из основы (холста, деревянной или металлической доски, картона, бумаги, камня), грунта и красочного слоя. Картина — один из наиболее типичных видов станкового искусства. наблюдается, по-моему, во многих классах общего доступа.

Обычно класс входит в домен Windows NT и все пользователи имеют свою учетную запись. Поэтому было решено построить вебпочту на базе Windows 4.0 Option Pack для Windows NT Server (OP). В комплекте OP имеется SMTP-сервер, и пользователи Windows NT автоматически получают на нем учетную запись. Еще один компонент, который нам необходим - Microsoft CDO for NTS Library (Collaboration Data Objects for Windows NT Server).

Этот компонент при работе с SMTP-сервером обращается к общей папке с сообщениями (обычно Mailroot/Drop) и работает с ними в зависимости от имени пользователя.

Перейдем непосредственно к тому, как работает вебпочта.

1. Авторизация.

Для авторизации пользователя можно использовать несколько методов.

Самый простой - у первой странички убрать анонимный доступ. В этом случае пользовательПользователь— лицо или организация, которое использует действующую систему для выполнения конкретной функции. при обращении к странице должен будет ввести ИМЯ и ПАРОЛЬ в стандартном окне для авторизации.

Я использовал этот метод, но немного изменил его.

Пользователь вводит ИМЯ и ПАРОЛЬ в стандартной форме.

HTML код для индексной (начальной) странички следующий:

...
<form name="Login" action="r.asp" method="POST">
<tr>
  <td>Имя</td>
  <td><input type="Text" name="user" title="Введите Имя."></td>
</tr>
<tr>
  <td>Пароль</td>
  <td><input type="Password" name="passw" title="Введите Пароль."></td
</tr>
<tr>
<td></td>
<td align="RIGHT"><input type="Submit" name="ent" value="Вход"></td>
</td>
</tr>
</form>
...

Следующая страничка (r.asp):

<html>
<head>
<META HTTP-EQUIV="Refresh" CONTENT='0;
URL=<%="http://" & Request.Form("user") & ":" & Request.Form("passw")
& "@ mail.youhost.ru/index2.asp" %>'>
        <title>Login</title>
</head>
<body bgcolor="#C0C0C0">
Login in progress...
</body>
</html>

Таким образом, формируется простой запросЗапрос— это формулирование своей информационной необходимости пользователем некоторой базы данных, как, например, поисковой системы. Для составления запроса используется язык поисковых запросов. типа:

http://USERNAME:PASSWORD@mail.youhost.ru/index2.asp

Анонимный доступ к страничке index2.asp должен быть отключен.

Ну а теперь все просто: если ИМЯ и ПАРОЛЬ действительны, то получаем серверную переменную AUTH_USER и используем ее в дальнейшем для проверки успешной авторизации.

Страничка index2.asp:

<%Option Explicit %>
<%
If Request.ServerVariables("LOGON_USER") = "" Then
        Response.Write("403 Access Forbidden")
        Response.End
Else
        Response.Redirect "in.asp"
        Response.End
End If
%>

Как видно из кода, при успешной авторизации пользователь попадает на страничку in.asp - главную страничку вебпочты.

Этот код необходимо вставить на все странички вебпочты!

<%
          If Request.ServerVariables("LOGON_USER") = "" Then
           Response.Redirect "index.html"
           Response.End
          End If
%>

Код для авторизации, выполненный отдельно, доступен по адресу http://verner.asf.ru.

Теперь можно перейти к собственно к чтению почтового ящика пользователя.

2. Чтение почтового ящика пользователя.

Для просмотра почтового ящика открываем сессию методом LogonSMTP и инициализируем объект сообщений objMessages:

<%
Dim mLog
Dim objSession
Dim objMessages
Dim muName
domain = "youhost.ru"

muName = Request.ServerVariables("LOGON_USER")
Set objSession = CreateObject("CDONTS.Session")
mLog = objSession.LogonSMTP(muName, muName & "@" & domain)
Set objMessages = objSession.Inbox.Messages
%>

Если сообщений нет

objMessages.Count <= 0

то пишем клиенту:

Response.Write "Вам нет сообщений"

Если сообщения есть, то организуем цикл:

Dim mCol(objMessages.Count)
        For i = 1 To objMessages.Count
        Set ofMsg = mCol(i)
        Set objAddrEntry = ofMsg.Sender

Пишем клиенту строки в таблице:

<tr>
' проверяем важность
<td>
<% SelectSELECT ("селект") — оператор DML языка SQL, возвращающий набор данных (выборку) из базы данных, удовлетворяющих заданному условию. Case ofMsg.Importance
        Case 0 %>
<img src="images/impor_l.gif" border=0 alt="Не важно.">
<% Case 1 %>
<img src="images/impor_0.gif" border=0 alt="Простое письмо.">
<% Case 2 %>
<img src="images/impor_h.gif" border=0 alt="Очень важно!!!">
<% End Select %>
</td>

Если в сообщении есть вложения, то:

<td>
<% If ofMsg.Attachments.Count > 0 Then  %>
<img src="images/att.gif" border=0 alt="С письмом(возможно пришли файлы)!">
<% Else %>
<img src="images/att0.gif">
<% End If %></center>
</td>

Пишем время сообщения:

<td>
<%= ofMsg.TimeReceived %>
</td>

Тема сообщения:

<TD>
<% If ofMsg.Subject = "" Then %>

Без темы

<% Else %>
<%= ofMsg.Subject %>
<% End If %>
</TD>

И напоследок размер сообщения:

<TD>
<%= ofMsg.Size %>
</TD>
' Идем к следующему сообщению
</TR>
<% Next %>

Вот, собственно, и все. Результат выглядит примерно так:

3. ЧтениеЧтение— один из важнейших видов речевой деятельности, тесно связанный как с произношением, так и с пониманием речи. Также «чтение»— это способность воспринимать, понимать информацию, записанную (передаваемую) тем или иным способом, воспроизводить техническими устройствами. почтового сообщения.

Текст письма.
' делаем активным, например, первое сообщение
<% Set ofMsg = objMessages.Item(1) %>
' если необходимо, обрабатываем текст сообщения
<%
Dim tre
tre = Mid(ofMsg.HTMLText, InStr(ofMsg.HTMLText, "</HEAD>")+7)
tre = Replace(tre, "</BODY>", "")
tre = Replace(tre, "</HTML>", "")
%>
' выводим
<%= tre%>

Если в почтовом сообщении есть вложения, то:

<% If ofMsg.Attachments.Count > 0 Then %>
<%
Dim ic, fname, fs
' физический путь к вложениям пользователя
path = "C:\Inetpub\wMail\Att\"
Set fs = CreateObject("Scripting.FileSystemObject")
For ic = 1 To ofMsg.Attachments.Count
fname = ofMsg.Attachments.Item(ic).Name
If fname <> "" Then

' проверяем наличие папки для пользователя
                If fs.FolderExists(path&muName)=False Then fs.CreateFolder(path&muName)
' пишем вложение(я) в папку
                ofMsg.Attachments.Item(ic).WriteToFile path&muName&"/"&fname
%>
<%= ic %>: <a href=#>

Результат выглядит примерно так:

Теперь рассмотрим создание почтового сообщения.

4. Создаем новое письмо (файл newmail.asp)

Форма для почтового сообщения (упращенная):

<form action="newmail.asp?mTo=<%= mTo%>&mSubject=
<%= mSubject%>&mText=<%= Request("mText") %>" method="POST">
<input type="Hidden" name="mSend" value="1">
<input type="Hidden" name="FileName2" value="<%= mAttachment&fExt %>">
<input type="Text" name="mTo" title="" value=<%= Request("mTo")%>><br>
<input type="Text" name="mSubject" title="" value=<%= Request("mSubject")%>>
<textarea name="mText" cols="50" rows="14" title=""><%= Request("mText") %></textarea>
<select name="mPriority">
<option value="0">Низкий</option>
<option value="1" selected>Нормальный</option>
<option value="2">Высокий</option>
</select>

<input type="Submit" name="Send" value="Отправить">
</form>

Выглядит это так:

Определяем необходимые переменныеПеременная— атрибут физической или абстрактной системы, который может изменять своё значение. Значение может меняться в зависимости от контекста, в котором рассматривается система, или в случае уточнения, о какой конкретно системе идёт речь. Концепция переменной широко используется в таких областях как математика, естественные науки, техника и программирование. Примерами переменных могут служить температура воздуха, параметр функции и многое другое. В широком смысле, переменная характеризуется лишь множеством значений, которые она может принимать. с формы и не только:

<%
Dim objNewMail
Dim i, muName, recipient, fl, Post, file, fs, afl, er
Dim mTo, mSubject, mText, mAttachment, mPriority, fExt
Post = ""
muName = Request.ServerVariables("LOGON_USER")
mTo = Request.Form("mTo")
mSubject = Request.Form("mSubject")
mText = Request.Form("mText")
mAttachment = Request.Form("FileName")
fExt = Request.Form("FileExtention")
mPriority = Request.Form("mPriority")
file = Request.Form("FileName2")
%>

Если все переменные не пусты, то формируем почтовое сообщение:

If Request("mSend") = 1 And mTo <> "" Then
        Dim myMail
        Set myMail = CreateObject("CDONTS.NewMail")
        myMail.From = muName & "@" & domain
        myMail.To = mTo
        myMail.Subject = mSubject
        myMail.Body = mText
        myMail.Importance = Request.Form("mPriority")
' собственно посылаем сообщение
        er=myMail.Send
        Set myMail = Nothing
End If

Если необходимо создать почтовое сообщение с вложением, то для этого нужен компонент для загрузки вложения на сервер (например, Posting Acceptor от Microsoft или любой другойДругой — центральная категория современной философии. Актуализация данного понятия связана с такими событиями, как антропологический и лингвистический поворот. Другой — это не Я, тот, кто противостоит мне, находится по ту сторону меня, моих ценностей, моего мировоззрения. И вместе с тем, Другой такой же как Я: он мыслит, чувствует, ходит и т. д., работающий по RFC 1867). После загрузки вложения его очень просто присоединить к письму:

        myMail.AttachFile path&muName&"\"&file

5. Адресная книга и др.

Адресную книгу можно создать, сохраняя в текстовом файле данные об адресатах. Например вот так:

Можно сохранять индивидуальные настройки для каждого пользователя, используя текстовый документ или Cookies.

БольшойГосударственный академический Большой театр России (ГАБТ), Государственный академический театр оперы и балета России, или просто Большой театр— один из крупнейших в России и один из самых значительных в мире театров оперы и балета. Расположен в центре Москвы, на Театральной площади. недостаток VB-Script - мало функций для работы с текстовыми строками.

6. Выводы.

Как видно из вышесказанного, построение вебпочты на ASP под Windows NT вполне возможно и довольно просто.

Есть и недостатки: SMTP-сервер при плохих каналах может терять сообщения и др.; при большом количестве почтовых сообщений компонент CDO замедляет свою работу.

Ну и, конечно, необходимо позаботиться о безопасности.

Вернер А. Р., оригинальный текст http://verner.asf.ru

 

Мы рекомендуем еще посмотреть:

ellspacing="0" cellpadding="0" border=0>
  Антенна направленная FA-20
  Версия для вывода на принтер

    Антенна построена по схеме фазированной антенной решетки и имеет, в отличие от зеркальных антенн, такие особенности, как полное отсутствие боковых лепестков в задней полусфере, различную ширину единственного главного лепестка в плоскостях E и Н, что дает ей неоспоримые преимущества перед антеннами других типов. Отсутствие задних и боковых лепестков в диаграмме направленности антенны позволяет строить эффективные системыСистема (от др.-греч. — «сочетание»)— множество взаимосвязанных элементов, обособленное от среды и взаимодействующее с ней, как целое. даже при установке антенн, работающих на соседних или одних частотах, в ближней зоне. Это свойство дает возможность эффективно отстраиваться от помех. Различие ширины диаграмм направленности в вертикальной и горизонтальной плоскостях дает возможность использовать антенны в большинстве случаев без дополнительной юстировки по углу места.

    Антенна может монтироваться либо без дополнительных рефлекторов, либо с ними. Установка рефлекторов уменьшает ширину диаграммы направленности в вертикальной плоскости за счет еще большего подавления боковых лепестков и увеличивает усиление с 17 до 20дБ.

    Антенна замкнута по постоянному току, что избавляет от необходимости использовать грозозащиту. Грозозащитные мероприятия сводятся к заземлению антенной мачты и внешней оплетки кабеля, что обеспечивается коаксиальным переходником.

    Применение специальных конструкторских решений обеспечивают работоспособностьРаботоспособность— это состояние изделия, при котором оно способно выполнять заданную функцию с параметрами, установленными требованиями технической документации, в течение расчётного срока службы. Отказ— это нарушение работоспособности. Свойство элемента или системы непрерывно сохранять работоспособность при определённых условиях эксплуатации (до первого отказа) называется безотказностью. Безотказность — свойство объекта сохранять работоспособное состояние в течение некоторого времени или наработки. антенны без ее герметизации в тяжелых климатических условиях, включая мокрыйКарел Мокрый (7февраля 1959(19590207), Простеёв) — чешский шахматист, гроссмейстер (1984). снег, без существенного ухудшения характеристик. Антенна выполнена из алюминиевых сплавов. Порошковое покрытиеПокрытие в математике— это семейство множеств, таких, что их объединение содержит заданное множество. Обычно понятие покрытия рассматривается в контексте общей топологии. корпуса обеспечивает многолетнюю эксплуатацию антенны в тяжелых условиях.

Диаграмма направленности


вектор H

вектор E

 Ширина диаграммы направленности
 (без рефлекторов / с рефлекторами)
 в горизонтальной (вектор Н) плоскости: 12/12° 
 в вертикальной (вектор Е) – 26/17°
 Коэффициент усиления в рабочей полосе частот
 (без рефлекторов / с рефлекторами)
 16.5 – 17.6/19.7 – 20.8 dBi
 Коэффициент стоячей волны в рабочей полосе частот  не хуже 1,50
 Физические размеры без рефлекторов 490х220х25
 Крепление на трубу диаметром 40-60мм


Документы по теме   / Беспроводные сети /  


2009 IT и оборудование для бизнеса, S-NETWORKS. Информационные технологии и Информационное оборудование