Moduł Mail::Mailer
Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowaSpis treści
Co to jest
Perl dostarcza nam wiele modułów które ułatwiają korzystanie z typowych usług internetowych. Jednym z nich jest moduł Mail::Mailer, dzięki któremu możemy m.in. wysyłać pocztę.
Jak to działa?
Moduł Mail::Mailer jest jednym z modułów, które wchodzą w interkacje z innymi zewnętrznymi aplikacjami obsługującymi proces wysyłania maili.
Używając Mail::Mailer, lub też tworząc nowy obiekt tej klasy, możemy sprecyzować którego klienta poczty chcemy używać, np.
use Mail::Mailer qw(mail);
Można tez użyć innego sposobu, np. napisać:
use Mail::Mailer;
$type = 'sendmail';
$mailprog = Mail::Mailer->new($type);
gdzie $type jest programem mailowym.
Kiedy nowy obiekt został już stworzony, należy użyć funkcji open, aby wysłać nagłówki wiadomości (headers) do programu mailowego, jako pary kluczy i wartości w haszu, gdzie każdy klucz reprezentuje typ nagłówka, a wartość jest wartością nagłowka:
%headers = (
'To' => 'twoj@mail.twoj.com',
'From' => 'moj@mail.moj.com',
'Subject' => 'Hello'
);
$mailprog->open(\%headers);
Nagłówki tutaj odpowiednio oznaczają:
- 'twoj@mail.twoj.com' - to odbiorca maila,
- 'moj@mail.moj.com' - to nadawca maila, czyli adres osoby z której konta mail został wysłany,
- 'Hello' - to temat wysyłanej wiadomości.
Powyższy kod jest oczywiście równoważny następującemu:
$mailprog->open({ From => $from_address,
To => $to_address,
Subject => $subject,
});
Kiedy już mamy zdefiniowane nagłówki możemy przejść do pisania treści wiadomości:
print $mailprog "To jest tresc wiadomosci. HURRA!!!!\n";
kiedy wiadomość jest skończona wystarczy już tylko zamknąć program:
$mailprog->close;
Dodam jeszcze, że bardziej zaawansowane fuknkcje posiada moduł Mail::Send, który być może opisze wkrótce ;-).
Funkcje
Moduł Mail::Mailer posiada trzy główne funkcje:
new()
$mailer = new Mail::Mailer [type, command]
Jak można domyśleć się po nazwie jest to konstruktor. Tworzy on nowy obiekt klasy Mailer, który reprezentuje wiadomość, która ma zostać wysłana.
Jeśli określone są opcjonalne argumenty wartość command zależy od type, który może być jednym z:
- mail:
Używa Unixowego programu mailowego (mail program), command jest ścieżką do maila. Moduł przeszukuje: mailx, Mail oraz mail, dokładnie w wymienionym porządku.
- sendmail:
Używa popularnego od 1979 roku programu sendmail, aby dostarczyć pocztę, command jest ścieżką do sendmail.
- smtp:
Uzywa protokołu smtp, aby dostarczyć pocztę.
Serwer, który ma zostać użyty może być określony w command, np.:
$mailer = new Mail::Mailer 'smtp', Server => $server;
- qmail:
qmail jest programem obsługującym transfer poczty w internecie (MTA) dla systemów unix'owych. Zastępuje Sendmail'a, który jest dostarczany wraz z wieloma systemami unix'owymi. qmail używa prostego protokolu przesyłania poczty (SMTP) by wymieniać wiadomosci z MTA na innych hostach.
podany jako $type sprawia, że qmail jest używany jako program mający dostarczyć pocztę. Proces dostarczania listu do MTA nazywa się umieszczaniem (ang. injection).
- test:
Uzywany zazwyczaj do debuggowania.
Wywołaj /bin/echo aby wyświetlić dane, ale nie wysyłać e-maila. W tym przypadku command jest ignorowane.
W przypadku, gdy nie zostały określone żadne z atrybutów przeszukiwane są wszystkie z wyżej wymienionych w takiej kolejności w jakies zostaly wypisane przeze mnie.
open()
$mailer->open(\%hashref)
Funkcja ta wysyła nagłowki wiadomości do programu mailowego.
Nagłówki albo s.a. podane bezpośrednio, albo jako referencja do hasza, jak to zostalo opisane wyżej.
Wartość może być także skalarem: tojest@jakis.mail.com lub też referencją dp tablicy skalarów:['gnat@frii.com', 'Tim.Bunce@ig.co.uk'].
close()
$mailer->close
Funkcja ta zamyka program mailowy.
Dodatkowe informacje
Więcej na temat tego modułu dowiesz się odwiedzając stronę: http://search.cpan.org/~markov/MailTools-1.77/Mail/Mailer.pm. Choć wg mnie ktoś wyjątkowo marnie opisał ten moduł, a najwięcej na jego temat można dowiedzieć się testując testując i jeszcze raz testując.
Autorka opisu
M.M.
Uniwersytet Gdański - Instytut Informatyki - Strona domowa - Perl - Wyklady