Moduł Mail::Mailer

Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowa

Spis treści

  1. Co to jest
  2. Jak to działa?
  3. Funkcje
    1. new()
    2. open()
    3. close()
  4. Dodatkowe informacje
  5. Autorka opisu

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
[c] Piotr Arłukowicz, materiały z tej strony udostępnione są na licencji GNU.