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> KONIECW 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 |
Powrót do spisu treści | Statystyka |