WEBHELP - Html zone - Kurs ASP - Wysyłanie i odbieranie poczty e-mail
Wysyłanie i odbieranie poczty e-mail.
Aby móc odbierać i wysyłać pocztę elektroniczną poprzez wykorzystanie obiektu
CDONTS należy zainstalować na serwerze WWW usługę SMTP
z pakietu Option Pack dla Windows NT 4.0 Server oraz MS Exchange
Server.
1 Wysyłanie poczty elektronicznej.
Przykładowy prosty program wysyłający e-maila wygląda następująco:
1:2:3:4:5:6:
<% @LANGUAGE = VBScript
%><%Option ExplicitDim MojaPocztaSet MojaPoczta =
Server.CreateObject(CDONTS.NewMail)MojaPoczta.Send
"webmaster@domena.pl", "administrator@domena.pl", _
7:
"Moja pierwsza poczta", "Pozdrowienia od webmastera.",
0
8:9:
Set MojaPoczta =
Nothing%>
Linie 1-4 są już znane, gdyż zawarte tam komendy były wcześniej omawiane. W
linii 5 został stworzony obiekt MojaPoczta. Obiekt
NewMail jest częścią CDONTS (Collaboration Data Object
for Windows NT Server) i pozwala w prosty sposób wysyłać pocztę ze strony
internetowej przy użyciu metody Send. Wygląda to następująco:
MojaPoczta.Send Aders_OdKogo, Adres_DoKogo, Temat, Treść,
Priorytet
Wszystkie parametry są chyba zrozumiałe, może tylko ostatni, tj.
Priorytet, który przyjmuje następujące wartości:
0
-
dla niskiego priorytetu wiadomości
1
-
dla normalnego priorytetu wiadomości
2
-
dla wysokiego priorytetu wiadomości
Należy zauważyć, że w linii 8 obiekt MojaPoczta został usunięty
(zdeaktywowany) poprzez wykonanie komendy:
Set MojaPoczta = Nothing
Powodem tego jest fakt, iż obiekt MojaPoczta może być użyty do wysłania tylko
jednej wiadomości. Po wysłaniu (metoda Send), automatycznie staje
się zupełnie bezużyteczny. Zabezpieczając się przed pojawieniem się
jakichkolwiek błędów, powinno się ustawiać wartość takiego obiektu na wartość
Nothing, czyli zwolnić jego zasoby na serwerze.
Komenda:
MojaPoczta.Send Aders_OdKogo, Adres_DoKogo, Temat, Treść,
Priorytet
może przyjąć także inną postać:
MojaPoczta.From Aders_OdKogoMojaPoczta.To
Adres_DoKogoMojaPoczta.Subject TematMojaPoczta.Body
TreśćMojaPoczta.Importance
PriorytetMojaPoczta.Send
Oprócz wyżej wymienionych metod obiekt MojaPoczta może mieć
jeszcze następujące:
MojaPoczta.Bcc
-
określa osoby, które jeszcze otrzymają tą wiadomość;
adresy powinny być oddzielone średnikiem (;)
MojaPoczta.BodyFormat
-
określa czy wiadomość w formacie zwykłego tekstu (wartość
1), czy w formacie HTML (wartość 0)
MojaPoczta.MailFormat
-
określa format poczty, tzn. czy jest to wiadomość
tekstowa (wartość 1), czy wiadomość formatu MIME (wartość 0); jeśli do
wiadomości dołączony jest jakiś plik to formatem poczty powinien mieć
wartość 0 (format MIME)
MojaPoczta.AttachFile
-
określa załączone pliki
W celu lepszego zrozumienia poniżej został przedstawiony trochę bardziej
rozbudowany przykład:
<% @LANGUAGE = VBScript %><%Option
ExplicitDim objPoczta, htmlText, wsOsobySet objPoczta =
Server.CreateObject("CDONTS.NewMail")htmlText = "<!DOCTYPE HTML
PUBLIC "" -//W3C//DTD HTML 4.0 Transitional//EN"">"htmlText =
htmlText & "<html>"htmlText = htmlText &
"<head>"htmlText = htmlText & "<title>Moja strona
uruchomiona!</title>"htmlText = htmlText & "<body
bgcolor=#ffffff>"htmlText = htmlText &
"<center>"htmlText = htmlText & "<p>Strona ""Moja
pierwsza "htmlText = htmlText & "strona"" została uruchomiona pod
adresem "htmlText = htmlText & "<a
href=""http://www.domena.pl"">"htmlText = htmlText &
"http://www.domena.pl</a>.</p>"htmlText = htmlText &
"<img src=""logo.gif"">"htmlText = htmlText &
"</center>"htmlText = htmlText & "</body>"htmlText
= htmlText & "</html>"wsOsoby =
Array("uzytkownik1@domena.pl",
"uzytkownik2@domena.pl")objPoczta.From =
"webmaster@domena.pl"objPoczta.To =
"administrator@domena.pl"objPoczta.Bcc = Join(wsOsoby,
";")objPoczta.Subject = "Strona uruchomiona!"objPoczta.BodyFormat
= 0objPoczta.MailFormat = 0objPoczta.Body =
htmlTextobjPoczta.AttachFile
Server.MapPath("logo.gif")objPoczta.SendSet objPoczta =
Nothing%>
Myślę, że nie trzeba omawiać tego programu, gdyż wcześniej wszystkie komendy
były już omawiane, może poza funkcją join(tablica,
ciągOdzielający), która w przykładzie wygląda następująco:
Join(wsOsoby, ";")
i zwraca łańcuch zawierający wszystkie elementy tablicy wsOsoby
oddzielone znakiem średnika (;).
2 Odbieranie poczty elektronicznej.
W celu odebrania poczty elektronicznej na stronie WWW należy posłużyć się
obiektem Session z CDONTS. Korzystając z
CDONTS można bezpośrednio utworzyć tylko dwa obiekty, tj.
NewMail oraz Session. Obiekt NewMail
został już omówiony podczas wysyłania poczty. Teraz omówiony zostanie obiekt
Session. Poniżej znajduje się program, który przedstawia sposób
odbierania poczty poprzez stronę WWW, dla przykładu niech będzie to poczta
użytkownika webmaster:
1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:
<% @LANGUAGE = VBScript
%><% Option Explicit
%><HTML><HEAD><TITLE>Odbieranie
poczty</TITLE></HEAD><BODY
BGCOLOR=#FFFFFF><%Dim cdoSesja, poczta, wiadomosci,
wiadomosc, wiadId, iSet cdoSesja =
Server.CreateObject("CDONTS.Session")cdoSesja.LogonSMTP "webmaster",
"webmaster@domena.pl"Set poczta = cdoSesja.InboxSet wiadomosci =
poczta.MessageswiadId = Trim(Request.QueryString("WiadId"))if
("" = wiadId Or Not IsNumeric(wiadId)) Then
17:
For Each wiadomosc In
wiadomosci
18:19:20:21:22:23:24:
i = i + 1Response.Write "<a
href="""Response.Write
Request.ServerVariables("SCRIPT_NAME")Response.Write "?WiadId=" &
i & """>" & wiadomosc.SubjectResponse.Write
"</a>"Response.Write " wysłane przez " &
wiadomosc.SenderResponse.Write "<BR>"
25:
Next
26:
Else
27:28:29:30:
Set wiadomosc =
wiadomosci(wiadId)Response.Write "<B>Temat:</B> " &
wiadomosc.Subject & "<BR>"Response.Write
"<B>Nadawca:</B> " & wiadomosc.Sender &
"<BR>"Response.Write "<B>Treść:</B> " &
wiadomosc.Text & "<BR>"
31:32:33:34:35:
End
IfcdoSesja.Logoff%></BODY></HTML>
Powyższa strona (przykład) umożliwia wyświetlenie poczty przychodzącej w
formie listy oraz wyświetlenie zawartości zaznaczonej (wybranej z listy)
wiadomości. Poczta należy do użytkownika webmaster, lecz zanim będzie można ją
odebrać, trzeba się zalogować. Jest to zrobione następująco:
Set cdoSesja =
Server.CreateObject("CDONTS.Session")cdoSesja.LogonSMTP "webmaster",
"webmaster@domena.pl"
Należy zauważyć, że jest to rozwiązanie mało bezpieczne, dlatego też jest
możliwe do zrealizowania tylko lokalnie. Następnym krokiem jest otwarcie folderu
Inbox oraz pobranie zbioru Messages (wiadomości):
Set poczta = cdoSesja.InboxSet wiadomosci =
poczta.Messages
Ponieważ oba elementy są obiektami, należy użyć komendy Set w
celu przypisania ich do zmiennych lokalnych. Teraz należałoby pobrać wszystkie
wiadomości znajdujące się w skrzynce (Inbox) użytkownika webmaster. W pierwszej
części jest pobierana i wyświetlana lista wszystkich wiadomości (linie 17-25).
Warunkiem wykonania tej operacji jest brak wartości parametru
wiadId (linia 16), czyli nie została wybrana żadna konkretna
wiadomość. Zmienna wiadId w naszym przykładzie jest identyfikatorem
wybranej wiadomości. Do odebrania informacji na temat wszystkich wiadomości
użyta została pętla For ... Each. W pętli generowane
są odsyłacze zawierające temat wiadomości i jego nadawcę. W momencie kliknięcia
na odsyłaczu, warunek w instrukcji If (linia 17) przyjmie wartość
FALSE i zostaną wykonane rozkazy w liniach 27-30, które spowodują
wyświetlenie wybranej wiadomości z większą ilością szczegółów, tj. temat,
nadawca, treść wiadomości. Linia:
Set wiadomosc = wiadomosci(wiadId)
tworzy obiekt odnoszący się do jednej tylko wiadomości (wybranej wiadomości).
W linii 32, tj:
cdoSesja.Logoff
następuje wylogowanie się z usługi SMTP i zakończenie obsługi poczty
przychodzącej.
Autor:
Krzysztof Stelmach
stelmi@priv2.onet.pl
Kurs udostępnił :http://stelmik.prv.pl
Wyszukiwarka
Podobne podstrony:
result2 aspasp katasp 9result2 aspASP inforesult2 aspsql functions aspsql groupby aspresult2 aspasp 2więcej podobnych podstron