Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Obiekty CDO dla Windows NT Server

Poloneza


Obiekty CDO dla Windows NT Server

Uzupełnienie strony ASP o funkcję wysyłania wiadomości e-mail

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.

Obiekt NewMail

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 "bob@na.com", "Julie@na.com, "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 "bob@na.com", "Julie@na.com, "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

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

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 = "harris@na.com"

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 = "harris@na.com;julie@na.com;ruth@na.com"

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 "bob@na.com", "harris@na.com;julie@na.com;ruth@na.com", _

"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 = "harris@na.com;julie@na.com;ruth@na.com"

objMail.Send "bob@na.com", , "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 = "harris@na.com;julie@na.com;ruth@na.com"

objMail.Send "bob@na.com", "nancy@na.com", "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

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 = "marg@na.com"

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 = "julie@na.com;jill@na.com"

objMail.From = "bob@na.com"

objMail.Send , , "Wiadomość próbna", _

"Ta wiadomość została wysłana do wszystkich z listy."

jest funkcjonalnym zamiennikiem tego kodu:

objMail.To = "julie@na.com;jill@na.com"

objMail.Send "bob@na.com", , "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ść Subject

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 = "julie@na.com;jill@na.com"

objMail.From = "bob@na.com"

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 = "julie@na.com;jill@na.com"

objMail.From = "bob@na.com"

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

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 = "julie@na.com;jill@na.com"

objMail.From = "bob@na.com"

objMail.Subject = "Witamy!"

objMail.Body = "Dziękujemy za odwiedzenie naszej witryny!"

ObjMail.Send

jest funkcjonalnie tożsame z tym:

objMail.To = "julie@na.com;jill@na.com"

objMail.From = "bob@na.com"

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 = "julie@na.com;jill@na.com"

objMail.From = "bob@na.com"

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 = "julie@na.com;jill@na.com"

nadawcę:

objMail.From = "bob@na.com"

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

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 = "joe@na.com"

lub większą ich liczbę oddzielając każdego z nich średnikiem:

ObjMail.CC = "joe@na.com;kate@na.com"

Właściwość BCC

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 = "joe@na.com"

lub, przy użyciu średników, wielu odbiorców:

ObjMail.BCC = "joe@na.com;kate@na.com"

Właściwość Importance

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 = "julie@na.com "

objMail.From = "bob@na.com"

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

Właściwości BodyFormat i MailFormat

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 = "tim@na.com"

objMail.From = "bob@na.com"

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 = "tim@na.com"

Następnie określamy nadawcę wiadomości poprzez właściwość From

objMail.From = "bob@na.com"

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

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łaściwość Value

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 = "kate@na.com"

objMail.From = "bob@na.com"

objMail.Subject = "Zwariowaliśmy!"

objMail.Body = "Wyślij mi e-mail ze szczegółami!"

objMail.Importance = 2

objMail.Value("Reply-To") = "Sprzedaż<sales@na.com>"

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 = "kate@na.com"

jak również właściwość From

objMail.From = "bob@na.com"

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ż<sales@na.com>"

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

Właściwość Version

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

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.

Metoda Send

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 "bob@na.com", "tom@na.com", "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 = "bob@na.com"

objMail.From = "tom@na.com"

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 = "bob@na.com"

objMail.From = "tom@na.com"

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

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 = "sue@na.com"

objMail.From = "bob@na.com"

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 = "sue@na.com"

objMail.From = "bob@na.com"

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

Metoda AttachURL

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

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.

Obiekt NewMail w działaniu

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.


Document Info


Accesari: 1540
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )