Wstecz
|
Dalej
|
#!/usr/bin/perl
use CGI;
CGI::ReadParse(*form);
$adres = "user\@serwer.com"; # tu musimy wpisać adres
open (MAIL,"| /usr/lib/sendmail -t");
print MAIL <<"KONIEC";
To: $adres
Subject: formularz
MIME-Version: 1.0
Content-type: text/plain; charset=iso-8859-2
Content-transfer-encoding: 8bit
Adres komputera: $ENV{'REMOTE_HOST'} ($ENV{'REMOTE_ADDR'})
Dane z formularza:
KONIEC
foreach $pole (keys(%form)) {
print MAIL "$pole: $form{$pole}\n";
}
close (MAIL);
print <<"KONIEC";
Content-type: text/html; charset=iso-8859-2
<html>
<head><title>Potwierdzenie</title></head>
<body>
<h1>Dziękujemy !</h1>
Wiadomość została przesłana. Oczekuj odpowiedzi wkrótce.
</body>
</html>
KONIEC
W zmiennej $adres musimy umieścić adres e-mailowy, pod który
mają być wysyłane listy. Nowsze wersje Perla traktują znak "@" jako
specjalny i wymagają poprzedzania go w stałej tekstowej znakiem "\",
stąd też taki zapis zastosowaliśmy w skrypcie. Następnie otwierany
jest potok do programu sendmail. Do tego potoku wypisywać
będziemy treść listu (wraz z nagłówkami). Znaczenie pól nagłówka To
(niezbędne do wysłania listu!) oraz Subject jest oczywiste; pola
MIME-Version, Content-type i Content-transfer-encoding są niezbędne
do prawidłowego zinterpretowania przez systemy pocztowe polskich
liter, jeżeli takowe będą występować w treści listu. Pozostałe
potrzebne pola, w tym m.in. From i Date, zostaną automatycznie
uzupełnione przez program sendmail. Nagłówek oddzielony jest
od treści listu pustym wierszem (podobnie jak w przypadku nagłówka
HTTP).Główną część listu generuje pętla foreach, wypisująca zawartośc wszystkich pól formularza. Funkcja keys pozwala na uzyskanie listy wszystkich nazw tych pól, będących indeksami w tablicy asocjacyjnej form. Każda z tych nazw jest kolejno podstawiana do zmiennej $pole i w treści listu umieszczany jest wiersz zawierający tę nazwę oraz zawartośc odpowiedniego elementu tablicy. Jako uzupełniające dane umieszczamy w treści listu adres domenowy oraz IP komputera, z którego wypełniano formularz.
W wyniku wywołania takiego skryptu - np. z przykładowego formularza omawianego w poprzednim rozdziale - adresat otrzymuje list jak na rys.11.
Wstecz
|
Dalej
|
Jarosław Rafa 2000.
Tekst udostępniony na licencji Creative Commons (uznanie autorstwa -
użycie niekomercyjne - bez utworów zależnych). Kliknij tutaj, aby dowiedzieć się, co to oznacza i co
możesz z tym tekstem zrobić. W razie jakichkolwiek wątpliwości
licencyjnych bądź w celu uzyskania zgody na rozpowszechnianie wykraczające
poza warunki licencji proszę o kontakt e-mailem: raj@ap.krakow.pl.
Wersja HTML opracowana 11.10.2000.
Powrót do spisu treści
|
Statystyka
|