Obiekt danych współpracujących dla Windows NT Server (Collaborative Data Objects, CDONTS, CDO dla NTS) pozwala na tworzenie kopii umożliwiających wysyłanie wiadomości e-mail z twoich stron lub aplikacji ASP. Biblioteka CDONTS ukazuje główną klasę, którą możemy stworzyć, NewMail, dostarczającą łatwych w użyciu metod i właściwości pozwalających na wysyłanie wiadomości e-mail z twoich stron ASP. Treść tego rozdziału koncentruje się na tym obiekcie.
CDONTS zaprojektowano tak, aby działał w systemie Windows NT Server dysponującym serwerem IIS wersji 4.0 lub późniejszej. Biblioteka nie wymaga uruchomienia serwera wymiany (Exchange Server). Jeśli posiadasz serwer wymiany w twoim systemie, musi on być zainstalowany po IIS, aby również biblioteka CDONTS była poprawnie zainstalowana. Jeśli nie posiadasz serwera wymiany, będziesz musiał korzystać z serwera SMTP dostarczanego wraz z IIS w celu poprawnego funkcjonowania biblioteki CDONTS. Powinieneś zobaczyć witrynę SMTP w serwerze IIS, co pokazano na rysunku 9.1.
Rysunek 9.1. Witryna SMTP w serwerze IIS
Jeśli nie posiadasz Microsoft Exchange'a, możesz tutaj skonfigurować witrynę SMTP przeglądając jej właściwości. Jeśli nie jest ona widoczna w IIS, to prawdopodobnie nie wybrałeś tego składnika w czasie instalacji IIS. Uruchom ponownie instalację i dodaj ten składnik.
W kilku przykładach użytych już w tej książce mogłeś widzieć obiekt NewMail w działaniu. Przy jego użyciu możesz wysyłać podstawowe wiadomości e-mail w trzech prostych wierszach kodu twojej strony ASP:
Set objMail = Server.CreateObject(&quo 10210c29k t;CDONTS.NewMail")
objMail.Send "[email protected]", "[email protected], "Witamy!", _
"Witamy w naszej firmie Julio. Cieszymy się, że tu jesteś - Bob"
Set objMail = Nothing
To wszystko, trzy wiersze. Najpierw tworzysz obiekt NewMail z biblioteki CDONTS
Set objMail = Server.CreateObject(&quo 10210c29k t;CDONTS.NewMail")
Następnie używasz metody Send w celu wysłania wiadomości e-mail. Pierwszy parametr metody Send określa wysyłającego wiadomość; drugi parametr to adresat wiadomości; trzeci to temat wiadomości; ostatni to sama jej treść:
objMail.Send "[email protected]", "[email protected], "Witamy!", _
"Witamy w naszej firmie Julio. Cieszymy się, że tu jesteś! - Bob"
W końcu zwalniasz zasoby obiektu NewMail
Set objMail = Nothing
Wiadomość e-mail wysyłana jest do odbiorcy. Powyższy kod wygeneruje wiadomość pokazaną na rysunku 9.2. Dzięki zastosowaniu obiektu NewMail możesz jednak zrobić znacznie więcej niż to, co pokazano na tym prostym przykładzie. W dalszej części tego rozdziału przyjrzymy się dokładnie właściwościom i metodom obiektu NewMail
Rysunek 9.2. Wiadomość e-mail wysłana przy użyciu metody Send obiektu NewMail
Właściwości obiektu NewMail pozwalają na dostosowanie do potrzeb klienta sposobu wysyłania wiadomości e-mail. Tabela 9.1. przedstawia sumarycznie te właściwości, które zostały tutaj omówione.
Tabela 9.1. Właściwości obiektu NewMail
Właściwość |
Przeznaczenie |
To |
Adres e-mail odbiorcy |
From |
Adres e-mail nadawcy |
Subject |
Temat wiadomości |
Body |
Treść wiadomości |
CC |
Odbiorcy listu typu DW |
BCC |
Odbiorcy zamaskowanego listu typu DW (UDW) |
Importance |
Ustawia poziom ważności wiadomości |
BodyFormat |
Określa format tekstu wiadomości, zwykły tekst lub HTML |
MailFormat |
Określa kodowanie wiadomości, tekstowe lub MIME |
ContentBase |
Baza adresu URL dla wszystkich łącz w wiadomości |
ContentLocation |
Określa ścieżkę dostępu do wszystkich łączy URL w treści wiadomości |
Value |
Dodaje nagłówki do wiadomości |
Version |
Zwraca wersję biblioteki CDONTS |
Właściwość To pozwala na określenie adresu e-mail odbiorcy. Właściwość ta ma następującą formę:
ObjMail.To = ListOfRecipients
ObjMail w tym kodzie musi być obiektem klasy NewMail biblioteki CDONTS. Zmienna ListOfRecipients jest adresem poczty elektronicznej osoby lub osób, do których chcesz wysłać wiadomość. Możesz zaadresować wiadomość do jednej osoby w następujący sposób:
ObjMail.To = "[email protected]"
Możesz również wysłać wiadomość do wielu odbiorców, oddzielając każdy z adresów średnikiem, jak to pokazano poniżej:
ObjMail.To = "[email protected];[email protected];[email protected]"
W tym momencie e-mail wysłany zostanie pod trzy adresy. Zwróć uwagę na to, że możemy określić odbiorcę wiadomości za pomocą właściwości To lub używając parametru metody Send, tak więc poprzedni wiersz mógłby być zastąpiony przez taki kod:
objMail.Send "[email protected]", "[email protected];[email protected];[email protected]", _
"Witamy!", "Witamy wszystkich w firmie. Cieszymy się z waszej obecności! --- Bob"
Jeśli korzystasz z właściwości To, po prostu nie wpisuj drugiego parametru metody Send
ObjMail.To = "[email protected];[email protected];[email protected]"
objMail.Send "[email protected]", , "Witamy!", _
"Witamy wszystkich w firmie. Cieszymy się z waszej obecności! --- Bob"
Jeśli używasz zarówno właściwości To, jak i parametru metody Send, wiadomość zostanie wysłana pod wszystkie adresy z obu list. Tak więc ten kod:
ObjMail.To = "[email protected];[email protected];[email protected]"
objMail.Send "[email protected]", "[email protected]", "Witamy!", _
"Witamy wszystkich w firmie. Cieszymy się z waszej obecności! --- Bob"
wysłałby e-mail do czterech odbiorców: trzech z nich określono we właściwości To i jednego w drugim parametrze metody Send
Właściwość From zapamiętuje adres poczty elektronicznej nadawcy. Właściwość ta ma następującą formę:
ObjMail.From = EmailAddressOfSender
ObjMail musi być tutaj ważnym obiektem NewMail biblioteki CDONTS. Zmienna EmailAddressOfSender musi być pełnym adresem e-mail, na przykład:
ObjMail.From = "[email protected]"
W tej właściwości możesz określić jednego tylko nadawcę. Innymi słowy nie możesz zastosować średników w celu określenia wielu nadawców; jeśli tak zrobisz, wystąpi błąd w przeglądarce, który prezentuje rysunek 9.3.
Rysunek 9.3. Wiadomość o wystąpieniu błędu, który wywołany został określeniem wielu nadawców
Do określenia nadawcy możesz użyć właściwości From lub zamiennie parametru metody Send. Tak więc ten kod:
objMail.To = "[email protected];[email protected]"
objMail.From = "[email protected]"
objMail.Send , , "Wiadomość próbna", _
"Ta wiadomość została wysłana do wszystkich z listy."
jest funkcjonalnym zamiennikiem tego kodu:
objMail.To = "[email protected];[email protected]"
objMail.Send "[email protected]", , "Wiadomość próbna", _
"Ta wiadomość została wysłana do wszystkich z listy."
Jeśli podasz parametr zarówno w metodzie Send, jak i właściwości From, w wysłanej wiadomości pojawi się nadawca określony poprzez metodę Send
Właściwości Subject możesz użyć do określenia tematu wiadomości. Ma ona następujący format:
ObjMail.Subject = TheSubject
ObjMail musi być ważnym obiektem NewMail serwera CDONTS. TheSubject jest ciągiem reprezentującym temat wiadomości. Użycie takiego kodu:
ObjMail.Subject = "Witamy!"
spowoduje, że tematem wiadomości będzie tekst "Witamy!". Temat wiadomości możesz określić przy użyciu właściwości Subject, jak również wykorzystując w tym celu trzeci parametr metody Send. Tak więc taki kod:
objMail.To = "[email protected];[email protected]"
objMail.From = "[email protected]"
objMail.Subject = "Witamy!"
objMail.Send , , , _
"Ta wiadomość została wysłana do wszystkich z listy."
można zastąpić takim, wywołującym te same rezultaty:
objMail.To = "[email protected];[email protected]"
objMail.From = "[email protected]"
objMail.Send , , "Witamy!", _
"Ta wiadomość została wysłana do wszystkich z listy."
Jeśli zastosujesz zarówno właściwość Subject, jak i trzeci parametr metody Send, użyty zostanie ten określony przez metodę Send
Właściwość Body określa tekst wiadomości lub jej HTML, jak będziesz mógł się przekonać nieco później. Właściwość ta ma następującą formę:
ObjMail.Body = BodyText
ObjMail musi być ważnym obiektem NewMail biblioteki CDONTS. BodyText jest treścią wiadomości. Taki kod:
ObjMail.Body = "Ta wiadomość została wysłana do wszystkich z listy."
spowoduje, że wiadomość będzie zawierała powyższy tekst. Do określenia treści wiadomości możesz użyć właściwości Body lub czwartego parametru metody Send, tak więc to:
objMail.To = "[email protected];[email protected]"
objMail.From = "[email protected]"
objMail.Subject = "Witamy!"
objMail.Body = "Dziękujemy za odwiedzenie naszej witryny!"
ObjMail.Send
jest funkcjonalnie tożsame z tym:
objMail.To = "[email protected];[email protected]"
objMail.From = "[email protected]"
objMail.Subject = "Witamy!"
ObjMail.Send , , , "Dziękujemy za odwiedzenie naszej witryny!"
Kiedy tworzysz wiadomości e-mail w twoim kodzie przekonasz się, że musisz je sformatować przy użyciu nowych wierszy w celu zaznaczenia przerw w tekście. Możesz to zrobić wykorzystując funkcję Chr, której parametrem jest liczba, a wartością zwracaną znak odpowiadający tej liczbie. Jeśli chciałbyś wstawić nowy wiersz, kod będzie taki:
Chr(13)
Jeśli chcesz wstawić znak tabulacji:
Chr(9)
Kolejnym znakiem, który być może będziesz chciał wstawić w tekst wiadomości to cudzysłów. Możesz to zrobić wstawiając tekst w cudzysłowie w cudzysłów podwójny.
Weź pod uwagę następujący blok kodu, zawierający cudzysłowy i nowe wiersze w treści wiadomości:
<%
Option Explicit
Dim objMail
Dim TheMessage
Set objMail = Server.CreateObject(&quo 10210c29k t;CDONTS.NewMail")
objMail.To = "[email protected];[email protected]"
objMail.From = "[email protected]"
objMail.Subject = "Witamy!"
TheMessage = "Cześć:" & chr(13) & chr(13) _
& "Dziękujemy za odwiedzenie naszej witryny!" & chr(13) & chr(13) _
& """Cenimy sobie Twoją firmę!"""
objMail.Body = TheMessage
objMail.Send
response.write "gotowe"
Set objMail = Nothing
%>
Po pierwsze zaznaczamy, że będziemy deklarować nasze zmienne:
Option Explicit
Następnie tworzona jest zmienna, która będzie przechowywała nasz obiekt NewMail
Dim objMail
Kolejna zmienna przeznaczona jest do przechowywania tekstu wiadomości:
Dim TheMessage
Następnie wykorzystujemy metodę CreateObject obiektu Server do stworzenia kopii obiektu NewMail
Set objMail = Server.CreateObject(&quo 10210c29k t;CDONTS.NewMail")
Określamy adresata wiadomości:
objMail.To = "[email protected];[email protected]"
nadawcę:
objMail.From = "[email protected]"
i temat wiadomości:
objMail.Subject = "Witamy!"
Tekst wiadomości zapamiętywany jest w zmiennej TheMessage. Zauważ, że użyto tutaj funkcji Chr do stworzenia nowych wierszy, a poza tym podwójnego cudzysłowu dla zaznaczenia cudzysłowu w cudzysłowie:
TheMessage = "Cześć:" & chr(13) & chr(13) _
& "Dziękujemy za odwiedzenie naszej witryny!" & chr(13) & chr(13) _
& """Cenimy sobie Twoją firmę!"""
Dla właściwości Body ustawiana jest wartość zmiennej TheMessage
objMail.Body = TheMessage
Wiadomość jest wysyłana:
objMail.Send
a obiekt zwalnia pamięć:
Set objMail = Nothing
Stworzony w ten sposób e-mail przedstawiono na rysunku 9.4. Zwróć uwagę na położenie cudzysłowu oraz nowych wierszy.
Rysunek 9.4. E-mail zawierający znaki specjalne
Właściwość CC pozwala określić odbiorców wiadomości, nie będących odbiorcami głównymi. Odbiorcy listu typu DW (ang. CC - Carbon Copy) widzą tą samą wiadomość, co odbiorcy główni, są jednak wyszczególnieni w nagłówku wiadomości jako adresaci drugorzędni.
Właściwość przyjmuje następującą formę:
ObjMail.CC = CCList
ObjMail musi być zatwierdzoną kopią klasy NewMail biblioteki CDONTS. CCList jest ciągiem zawierającym listę adresów poczty elektronicznej. Możesz określić pojedynczego odbiorcę listu typu DW:
ObjMail.CC = "[email protected]"
lub większą ich liczbę oddzielając każdego z nich średnikiem:
ObjMail.CC = "[email protected];[email protected]"
Poprzez właściwość BCC możesz określić odbiorców zamaskowanego listu typu DW (UDW, ang. BCC - Blind Carbon Copy). Adresat UDW otrzymuje tą samą wiadomość, co odbiorca główny i odbiorca DW, ale ci dwaj ostatni nie są powiadamiani o adresie e-mail odbiorców listu UDW. Dzięki tej właściwości możesz chronić prywatność poszczególnych osób.
Właściwość ma następującą formę:
ObjMail = BCCList
ObjMail musi być zatwierdzoną kopią klasy NewMail biblioteki CDONTS. BCCList to ciąg łączący w sobie listę adresów e-mail odbiorców zamaskowanego listu typu DW. Możesz określić pojedynczego odbiorcę listu UDW:
ObjMail.BCC = "[email protected]"
lub, przy użyciu średników, wielu odbiorców:
ObjMail.BCC = "[email protected];[email protected]"
Różne aplikacje poczty elektronicznej pozwalają określać poziom ważności wysyłanych przez ciebie wiadomości. Sposób wyświetlania tego znacznika ważności różni się w zależności od systemu. Za pomocą właściwości Importance możesz określić w kodzie ważność wiadomości.
Składnia właściwości przedstawia się następująco:
ObjMail.Importance = Value
ObjMail musi być ważną kopią obiektu NewMail. Dopuszczalne wartości Value przedstawia tabela 9.2.
Tabela 9.2. Wartości właściwości Importance
Wartość |
Znaczenie |
Niska ważność |
|
Normalna ważność (domyślna) |
|
Wysoka ważność |
Możemy więc włączyć właściwość Importance do naszego bloku kodu:
<%
Option Explicit
Dim objMail
Dim TheMessage
Set objMail = Server.CreateObject(&quo 10210c29k t;CDONTS.NewMail")
objMail.To = "[email protected] "
objMail.From = "[email protected]"
objMail.Subject = "Witamy!"
TheMessage = "Cześć:" & chr(13) & chr(13) _
& "Dziękujemy za odwiedzenie naszej witryny!" & chr(13) & chr(13) _
& """Cenimy sobie Twoją firmę!"""
objMail.Body = TheMessage
objMail.Importance = 2
objMail.Send
Set objMail = Nothing
response.write "gotowe"
%>
Kiedy ważność wiadomości jest wysoka, program obsługujący pocztę odbiorcy zazwyczaj czyni taką wiadomość bardziej widoczną. Zwróć uwagę na zmianę, jaka zaszła w wyglądzie wiadomości prezentowanej przez program Outlook z powodu nadania jej priorytetu ważności, co pokazano na rysunku 9.5.
Rysunek 9.5. Wiadomość wykorzystująca właściwość Importance
Wszystkie omówione do tej pory wiadomości miały format tekstowy. Możemy jednak wysyłać również wiadomości e-mail w formacie HTML, korzystając przy tym z właściwości BodyFormat i MailFormat
Właściwość BodyFormat ma następującą składnię:
ObjMail.BodyFormat = Value
ObjMail jest obiektem NewMail serwera CDONTS. Wartość (Value) może wynosić domyślnie 1 co oznacza, że treść wiadomości jest zwykłym tekstem. Wartość właściwości ustawiona na 0 oznacza, że treść wiadomości zawiera HTML.
Aby wysłać wiadomość w formacie HTML, musisz również użyć właściwości MailFormat, która określa typ kodowania wiadomości. Składnia właściwości przedstawia się następująco:
ObjMail.MailFormat = Value
ObjMail musi być obiektem NewMail. Wartość (Value) może wynosić 0 lub 1. Domyślną wartością jest 1, co oznacza, że zastosowano kodowanie tekstowe. Dla wiadomości HTML musisz użyć wartości 0 co oznacza, że zastosowano kodowanie MIME.
Poniższy przykładowy kod wysyła wiadomość HTML o wysokiej ważności.
<%
Option Explicit
Dim objMail
Dim TheMessage
Set objMail = Server.CreateObject(&quo 10210c29k t;CDONTS.NewMail")
objMail.To = "[email protected]"
objMail.From = "[email protected]"
objMail.Subject = "Zwariowaliśmy!"
TheMessage = "<HTML>" _
& "<HEAD>" _
& "<TITLE>Mamy wyprzedaż</TITLE>" _
& "</HEAD>" _
& "<BODY>" _
& "<H1><CENTER>Wszystko tańsze o<STRIKE>30%</STRIKE> 50% !</CENTER></H1>" _
& "<HR>" _
& "<P>Stój więc! <A HREF=""https://www.na.com"">kliknij tutaj!</A></P>" _
& "</BODY>" _
& "</HTML>"
objMail.Body = TheMessage
objMail.Importance = 2
objMail.BodyFormat = 0
objMail.MailFormat = 0
objMail.Send
Set objMail = Nothing
%>
Po pierwsze stwierdzamy, że będziemy deklarować nasze zmienne:
Option Explicit
Następnie deklarujemy zmienną obiektu NewMail
Dim objMail
oraz zmienną, która będzie przechowywała treść wiadomości HTML:
Dim TheMessage
Tworzymy kopię zmiennej objMail
Set objMail = Server.CreateObject(&quo 10210c29k t;CDONTS.NewMail")
a następnie określamy odbiorcę wiadomości:
objMail.To = "[email protected]"
Następnie określamy nadawcę wiadomości poprzez właściwość From
objMail.From = "[email protected]"
Wiadomości nadawany jest tytuł:
objMail.Subject = "Zwariowaliśmy!"
Następnie budujemy treść naszej wiadomości w postaci czystego HTML-a. Używamy tutaj rozmaitych znaczników HTML. Zwróć uwagę na użyte w tekście cudzysłowy:
TheMessage = "<HTML>" _
& "<HEAD>" _
& "<TITLE>Mamy wyprzedaż</TITLE>" _
& "</HEAD>" _
& "<BODY>" _
& "<H1><CENTER>Wszystko tańsze o<STRIKE>30%</STRIKE> 50% !</CENTER></H1>" _
& "<HR>" _
& "<P>Stój więc! <A HREF=""https://www.na.com"">kliknij tutaj!</A></P>" _
& "</BODY>" _
& "</HTML>"
Dalej ustalamy treść wiadomości HTML:
objMail.Body = TheMessage
Ustawiamy ważność wiadomości:
objMail.Importance = 2
Zaznaczamy, że treścią jest HTML:
objMail.BodyFormat = 0
Użyty format kodowania to MIME:
objMail.MailFormat = 0
Metoda Send wysyła wiadomość e-mail:
objMail.Send
W końcu uwalniamy zasoby wiadomości:
Set objMail = Nothing
Odbiorca powinien otrzymać wiadomość pokazaną na rysunku 9.6.
Rysunek 9.6. Wiadomość HTML
Pamiętaj jednak, że nie wszystkie programy poczty elektronicznej potrafią przeglądać wiadomości HTML. Niektóre z nich mogą wyświetlić jedynie tekst wiadomości podobny do tego pokazanego na rysunku 9.7. Program próbuje tutaj pokazać tekst wiadomości, zauważ jednak jak zmieniło się jej znaczenie. W dokumencie HTML skreśliliśmy 30% na rzecz 50%. Tutaj nie widać tej różnicy.
Rysunek 9.7. Wiadomość HTML przeglądana przez klienta nie obsługującego HTML-a
Właściwości ContentBase i ContentLocation pozwalają ci określić w HTML-u położenie względnych odwołań. Właściwość ContentBase normalnie zapamiętuje wyższy poziom lokalizacji adresów URL, a właściwość ContentLocation zapamiętuje ścieżkę katalogu.
Właściwość ContentBase ma następującą składnię:
ObjMail.ContentBase = Path
ObjMail musi być ważną kopią klasy NewMail. Wartość Path jest zazwyczaj ścieżką domeny. Zapis może więc być następujący:
ObjMail.ContentBase = "https://www.whatever.com/"
Jeśli wpisałbyś tylko taką wartość, to ścieżki w twojej wiadomości HTML wykorzystają ją jako odniesienie względne podczas lokalizacji obrazków i łącz.
Możesz również użyć właściwości ContentLocation w celu określenia katalogu poniżej nazwy domeny, gdzie ulokowano łącza i pliki. Składnia właściwości ContentLocation przedstawia się tak:
ObjMail.ContentLocation = Path
ObjMail jest kopią klasy NewMail Wartość Path określa ścieżkę do plików i łącz. Jeśli na przykład napiszesz taki kod:
ObjMail.ContentLocation = "emailreports/December/"
to znacznik obrazka w treści wiadomości HTML wykorzysta obydwie właściwości, ContentBase i ContentLocation, w celu określenia fizycznego położenia obrazka.
W zależności od posiadanego przez odbiorcę programu obsługującego pocztę, istnieje wiele rozmaitych ustawień wiadomości. Możesz dodać te ustawienia przy użyciu właściwości Value
Właściwość Value uzupełnia wiadomość e-mail o dodatkowy nagłówek i ma następujący format:
ObjMail.Value(HeaderName) = HeaderValue
ObjMail musi być zatwierdzonym obiektem NewMail HeaderName jest kopią nagłówka, którego chcesz użyć w wiadomości, a HeaderValue jest wartością tego nagłówka. Na przykład wiele klientów poczty uwzględnia adres e-mail nadawcy, jak również zwrotny adres odpowiedzi Reply-To. Jeśli odbiorca kliknie przycisk Odpowiedz (Reply) w swojej aplikacji poczty, program użyje adresu wskazanego przez tą funkcję zamiast adresu nadawcy z właściwości From
Zwróćmy na przykład uwagę na następujący kod:
<%
Option Explicit
Dim objMail
Set objMail = Server.CreateObject(&quo 10210c29k t;CDONTS.NewMail")
objMail.To = "[email protected]"
objMail.From = "[email protected]"
objMail.Subject = "Zwariowaliśmy!"
objMail.Body = "Wyślij mi e-mail ze szczegółami!"
objMail.Importance = 2
objMail.Value("Reply-To") = "Sprzedaż<[email protected]>"
objMail.Send
Set objMail = Nothing
%>
Po pierwsze informujemy kompilator o deklaracji naszych zmiennych:
Option Explicit
Następnie deklarujemy zmienną NewMail
Dim objMail
Tworzymy kopię obiektu NewMail
Set objMail = Server.CreateObject(&quo 10210c29k t;CDONTS.NewMail")
Ustawiana jest właściwość To
objMail.To = "[email protected]"
jak również właściwość From
objMail.From = "[email protected]"
Dalej określany jest temat i treść wiadomości:
objMail.Subject = "Zwariowaliśmy!"
objMail.Body = "Wyślij mi e-mail ze szczegółami!"
Zaznaczamy, że ważność wiadomości jest wysoka:
objMail.Importance = 2
Następnie, przed wysłaniem wiadomości, dodajemy nagłówek Reply-To
objMail.Value("Reply-To") = "Sprzedaż<[email protected]>"
i uwalniamy zasoby wiadomości:
objMail.Send
Set objMail = Nothing
Kiedy goście klikną przycisk Odpowiedz (Reply) znajdujący się w ich kliencie poczty, wiadomość zostanie wysłana pod adres Reply-To, a nie adres nadawcy określony właściwością From, co pokazano na rysunku 9.8.
Rysunek 9.8. Wiadomość wykorzystująca nagłówek Reply-To
Pozostała do omówienia ostatnia właściwość obiektu NewMail, właściwość Version, która zwraca wersję biblioteki CDONTS. Ta właściwość, przeznaczona tylko do odczytu, przyjmuje następującą formę:
ObjMail.Version
ObjMail musi być ważnym obiektem NewMail. Zwracaną przez funkcję wartością jest wersja biblioteki, tak więc poniższy kod:
<%
Option Explicit
Dim objMail
Set objMail = Server.CreateObject(&quo 10210c29k t;CDONTS.NewMail")
Response.Write "<H2>Ten serwer korzysta z wersji: " _
& objMail.Version & " CDONTS</H2>"
%>
wyświetli używaną wersję CDONTS, jak to pokazano na rysunku 9.9.
Rysunek 9.9. Wyświetlenie właściwości Version
Metody obiektu NewMail umożliwiają podjęcie odpowiednich działań związanych z tym obiektem. Metody te są omówione poniżej, a ich podsumowanie przedstawia tabela 9.3.
Tabela 9.3. Metody obiektu NewMail
Metoda |
Przeznaczenie |
Send |
Wysyła wiadomość e-mail. |
AttachFile |
Pozwala na załączenie pliku do wysyłanej wiadomości. |
AttachURL |
Załącza pliki, które są częścią wiadomości HTML. |
SetLocaleIDs |
Określa informację o lokalizacji. |
Jak mogłeś przekonać się z treści tego rozdziału, metoda Send wykorzystywana jest do wysyłania wiadomości e-mail. Ma ona następującą składnię:
ObjMail.Send From, To, Subject, Body, Importance
ObjMail musi być obiektem NewMail. Wszystkie parametry tej metody są fakultatywne. Jak widziałeś, każdemu z parametrów odpowiada właściwość, dzięki której możesz określić jego wartość.
Wobec tego kod:
<%
Option Explicit
Dim objMail
Set objMail = Server.CreateObject(&quo 10210c29k t;CDONTS.NewMail")
ObjMail.Send "[email protected]", "[email protected]", "Wiadomość testowa", _
"Tekst wiadomości!", 2
Set objMail = Nothing
%>
jest funkcjonalnie tożsamy z tym kodem:
<%
Option Explicit
Dim objMail
Set objMail = Server.CreateObject(&quo 10210c29k t;CDONTS.NewMail")
objMail.To = "[email protected]"
objMail.From = "[email protected]"
objMail.Subject = "Wiadomość testowa"
objMail.Body = "Tekst wiadomości!"
objMail.Importance = 2
objMail.Send
Set objMail = Nothing
%>
Możesz określić każdy z parametrów w metodzie lub we właściwościach. Jeśli chcesz określić wartość właściwości Importance w metodzie, a wszystkie inne parametry osobno jako właściwości, wykorzystaj przecinki w celu zaznaczenia pustych pozycji, tak jak tutaj:
<%
Option Explicit
Dim objMail
Set objMail = Server.CreateObject(&quo 10210c29k t;CDONTS.NewMail")
objMail.To = "[email protected]"
objMail.From = "[email protected]"
objMail.Subject = "Wiadomość testowa"
objMail.Body = "Tekst wiadomości!"
objMail.Send , , , , 2
Set objMail = Nothing
%>
Z wyjątkiem parametru To, wszystkie parametry tej metody unieważniają wartości określone we właściwościach. Jeśli użyta została zarówno właściwość To, jak i parametr metody, wiadomość wysłana zostanie pod adresy znajdujące się w obydwu miejscach.
Metoda AttachFile łączy w sobie mechanizmy, które pozwolą ci dołączyć pliki do wiadomości e-mail. Metoda ta ma następującą składnię:
ObjMail.AttachFile FileLocation, FileName, EncodingType
ObjMail musi być zatwierdzonym obiektem NewMail biblioteki CDONTS. Parametr FileLocation jest wymagany i określa fizyczne położenie pliku, natomiast parametr FileName jest dodatkowy. Jeśli został podany, stanowi wyświetlaną w programie poczty nazwę załącznika. Jeśli nie wpiszesz tego parametru, wyświetlana będzie nazwa pliku. Parametr EncodingType również nie jest obowiązkowy, a używa się go do zaznaczenia typu kodowania. Domyślnie ustawioną wartością 0, co oznacza kodowanie UUEncode. Jeśli ustawisz tutaj wartość 1, wykorzystane zostanie kodowanie Base 64.
Przykładowy kod przedstawiony poniżej załącza do wiadomości plik, któremu nadano nazwę Company Logo
<%
Option Explicit
Dim objMail
Set objMail = Server.CreateObject(&quo 10210c29k t;CDONTS.NewMail")
objMail.To = "[email protected]"
objMail.From = "[email protected]"
objMail.Subject = "Twój plik"
objMail.Body = "Dołączono żądany plik."
objMail.AttachFile "e:\inetpub\logo.gif", "Company Logo"
objMail.Send
Set objMail = Nothing
%>
Na wstępie używamy instrukcji Option Explicit, wymaganej podczas deklaracji zmiennych:
Option Explicit
Następnie deklarowany jest obiekt NewMail i tworzona jest jego kopia:
Dim objMail
Set objMail = Server.CreateObject(&quo 10210c29k t;CDONTS.NewMail")
Ustawiane są właściwości To i From
objMail.To = "[email protected]"
objMail.From = "[email protected]"
Następnie ustawiane są właściwości Subject i Body
objMail.Subject = "Twój plik"
objMail.Body = "Dołączono żądany plik."
Używamy metody AttachFile, aby dołączyć plik do wiadomości. Pierwszy parametr to ścieżka fizyczna do załączanego pliku. Drugi jest nazwą, którą przydzielamy plikowi:
objMail.AttachFile "e:\inetpub\logo.gif", "Company Logo"
Wiadomość jest wysyłana i zasoby wykorzystywane przez obiekt są zwalniane:
objMail.Send
Set objMail = Nothing
Wiadomość, którą otrzymuje odbiorca pokazana jest na rysunku 9.10. Zwróć uwagę na nazwę załączonego pliku.
Rysunek 9.10. E-mail z załącznikiem
Jeśli wysyłasz wiadomość HTML, możesz chcieć włączyć w jej treść grafiki lub inne pliki. Jednym ze sposobów na dokonanie tego jest określenie ścieżki do pliku w Internecie przy użyciu odpowiedniego znacznika, na przykład Image. Innym sposobem jest włączenie pliku wprost do samej wiadomości. Robi się to poprzez metodę AttachURL, która pozwala na dodanie pliku do wiadomości tak, że staje się on częścią treści HTML. Metoda ta ma następującą składnię:
ObjMail.AttachURL PathToFile, FileName, ContentBase, EncodingType
ObjMail musi być ważnym obiektem NewMail biblioteki CDONTS. Parametr PathToFile jest wymagany i określa fizyczne położenie pliku. Parametr FileName jest użytą w HTML nazwą pliku i on również jest w metodzie wymagany. Wpisanie ContentBase nie jest wymagane, a stanowi ono bazę adresu URL dla załącznika. Podobnie nie musisz wpisywać wartości dla EncodingType. Jego wartość domyślna wynosi 0, co oznacza kodowanie UUEncode. Możesz jednak wykorzystać kodowanie Base 64, ustawiając dla tego parametru wartość 1.
Powiedzmy, że stworzyłeś wiadomość, której treścią jest poniższy HTML:
TheMessage = "<HTML>" _
& "<HEAD>" _
& "<TITLE>Mamy wyprzedaż</TITLE>" _
& "</HEAD>" _
& "<BODY>" _
& <img src=logo.gif>
& "<H1><CENTER>Wszystko tańsze o<STRIKE>30%</STRIKE> 50% !</CENTER></H1>" _
& "<HR>" _
& "<P>Stój więc! <A HREF=""https://www.na.com"">kliknij tutaj!</A></P>" _
& "</BODY>" _
& "</HTML>"
Zauważ, że HTML zawiera znacznik Image. Możesz wykorzystać metodę AttachURL, aby załączyć tą grafikę do wiadomości e-mail:
ObjMail.AttachURL "e:\inetpub\logo.gif", "logo.gif"
Od tej pory grafika jest częścią wiadomości HTML.
Metoda SetLocaleID jest używana do określenia odpowiednich formatów liczb, waluty, daty i innych, obowiązujących dla wiadomości. Metoda ma następującą składnię:
ObjMail.SetLocaleID LocaleID
ObjMail musi być obiektem typu NewMail LocaleID jest liczbą typu long i reprezentuje format wyświetlania wiadomości w zależności od lokalizacji.
Jeśli przeczytałeś ten rozdział, to wpadłeś już zapewne sam na wiele zastosowań obiektu NewMail. Umiejętność uzupełnienia twojej witryny WWW o wiadomości e-mail może podnieść jej jakość na wiele różnych sposobów.
Wiele witryn WWW używa obiektu NewMail w celu przenoszenia prośby gości o udzielenie informacji. Narzędzie, którego ja używam, prezentuje odwiedzającym formularz, w który mogą wpisać swój adres e-mail, imię i nazwisko, numer telefonu i inne dane oraz swoją wiadomość. Następnie narzędzie zachęca gości do wybrania z listy tematu pasującego do ich wiadomości. Lista jest elementem formularza wyboru. Gościom wyświetlana jest tekstowa lista tematów, ale adres e-mail dla danego tematu przesyłany jest razem z formularzem. Tak więc inna osoba może odpowiadać za każdy z tematów. E-mail może być wysłany również do wielu osób, w tym wypadku ich adresy należy oddzielić od siebie średnikiem.
Jeśli więc element formularza nosiłby nazwę Topic, mógłbyś ustawić według niego właściwość To
ObjMail.To = Request.Form("Topic")
Często również wykorzystuje się obiekt NewMail w celu wysłania powiadomienia o wystąpieniu określonego zdarzenia. Na przykład w witrynach handlowych konieczne jest zapamiętanie w bazie danych informacji o zamówieniu, ale może również okazać się, że należy wysłać wiadomość do osoby odpowiedzialnej za sklep, aby poinformować ją o konieczności przetworzenia zamówienia. Pewnie nie będziesz chciał wysyłać pocztą całego zamówienia, ponieważ może ono zawierać informacje zastrzeżone, jak choćby numery kart kredytowych.
W rozdziale 7. przyjrzeliśmy się tworzeniu dokumentu Word przy użyciu kopii tego obiektu, wykorzystując przy tym metodę CreateObject obiektu Server. Dokument był tam generowany na bazie formularza w postaci listu wyświetlanego następnie odwiedzającemu. Mógłbyś jednak zmodyfikować ten kod w taki sposób, aby otrzymywał on dokument pocztą elektroniczną. Pamiętaj, że twoi goście mogą dysponować rozmaitymi systemami, na których zainstalowano różnego rodzaju narzędzia, tak więc wykorzystanie szerokiej gamy metod dla jednego zadania może być w tym względzie bardzo użyteczne.
Zastanów się nad wykorzystywaniem wiadomości HTML zamiast zwykłego tekstu. Jest to o wiele lepsze, zwłaszcza jeśli chodzi o materiały reklamowe, a nie wymaga przecież dużej pracy. Użyj jedynie prostego narzędzia HTML podczas projektowania strony. Następnie przeglądnij źródło strony i skopiuj oraz wklej je do twojej strony ASP. Zamień je na ciąg i wpisz go do właściwości Body. Ta prosta zmiana może spowodować, że twój e-mail będzie się wyróżniał spośród wielu innych, które otrzymał odbiorca.
Obiekt NewMail można wykorzystywać również do rozrywki, tworząc strony z kartkami pocztowymi lub kartami urodzinowymi. Te strony pozwalają gościowi wysyłać wiadomości do przyjaciół lub kolegów. E-mail informuje odbiorcę o tym, że otrzymali kartę urodzinową, kartkę pocztową lub jakąś inną, którą mogą odebrać na twojej witrynie. Następnie klikają łącze znajdujące się w treści wiadomości e-mail, które przenosi ich na twoją witrynę. Tam widzą wiadomość pozostawioną przez pierwszego jej gościa. Technika ta nie tylko pozwala gościom powrócić na witrynę, ale również wprowadza na nią nowych gości - a wszystko, czego przy tym potrzebuje, to formularz dla pierwszego gościa, gdzie mógłby wybrać typ kartki i jej tekst. Następnie użyć można obiektu NewMail w celu wysłania wiadomości do odbiorcy kartki. Kiedy goście powrócą na witrynę, ujrzą stronę ASP zawierającą informacje przekazane przez pierwszego przeglądającego.
Łącząc ze sobą omówione do tej pory obiekty dysponujesz prawie nieograniczonymi możliwościami tworzenia aplikacji ASP.
|