Przejdź do końca metadanych
Przejdź do początku metadanych

Obsługa kolejki

Moduł wysyła e-maile odczytując pliki znajdujące się w kolejce. Kolejka znajduje się w katalogu roboczym, zakładając instalację na koncie sowa pod Linuksem będzie to:

/home/sowa/.sowang/var/spool/mail/

zaś w przypadku instalacji na serwerze z systemem Windows ścieżka do ustawień lokalnych aplikacji sowang, np:

C:\sowa\sowang\var\spool\mail\

Uwaga na temat parametru

W przypadku ustawiania parametru ścieżki pod Windowsem z poziomu klienta administracyjnego należy używać podwójnego znaku \ - np.:

p# CFG_MAILER_SPOOL C:\\sowa\\sowang\\var\\spool\\mail\\

 

Serwery aplikacji (lub inne programy, które chcą wykorzystać mechanizm smailera do wysyłania poczty) w katalogu tym umieszczają pliki XML (koniecznie o unikalnej nazwie) o takiej konstrukcji:

Przykładowy plik w kolejce
<?xml version="1.0" encoding="UTF-8"?>
<list>
	<item>
		<fld_time>17.10.2011 00:00:11</fld_time>
		<fld_sender>foo@example.com</fld_sender>
		<fld_address>boo@hisorhermail.com</fld_address>
		<fld_topic>Upomnienie</fld_topic>
		<fld_content>Prosimy o niezwłoczny zwrot wymienionych poniżej, przetrzymanych egzemplarzy...</fld_content>
	</item>
</list>

fld_sender - adres konta nadawcy - e-mail zostanie wysłany tylko jeśli takie konto zostało wcześniej skonfigurowane

fld_address - adres konta odbiorcy e-maila

fld_topic - tytuł wiadomości e-mail

fld_content - treść wysyłanej wiadomości

Katalog kolejki posiada trzy podkatalogi:

sent - podkatalog, w którym przez pewien okres czasu (domyślnie 7 dni) przechowywane są pliki z listami skutecznie wysłanymi przez serwer SMTP

drop - podkatalog, w którym przez pewien okres czasu (domyślnie 7 dni) przechowywane są pliki z listami, które zostały definitywnie odrzucone z kolejki (np. na skutek źle sformatowanego adresu e-mail) lub wielokrotne próby ich wysłania zostały odrzucone przez serwer SMTP.

defer - podkatalog, w którym przechowywane są pliki z listami, które nie zostały zaakceptowane przez serwer SMTP, ale jest prawdopodobieństwo, że wynikło to z chwilowej niedostępności lub uszkodzonej konfiguracji serwera SMTP. Próby wysyłki są ponawiane co określony czas (domyślnie nie częściej niż 1 na godzinę) i tylko określoną ilość razy (domyślnie: 100 razy). Listy, których mimo to nie uda się wysłać mimo tylu prób, zostaną uznane za odrzucone definitywnie i przeniesione do podkatalogu "drop".

 

Do sprawdzania kolejki służy komenda queue.

smailer queue foo@example.com

Wyświetli to przykładową kolejkę dla konta nadawczego foo@example.com w formacie:

17.10.2011000011_BB1C7C8F5EC83BC7: (foo@example.com => boo@hisorhermail.com)
17.10.2011000011_38B343FA3354D819: (foo@example.com => goo@university.org)
17.10.2011000011_943F1D69E881537D: (foo@example.com => zoo@provider.net)

Oczywiście aby wyświetlić całą kolejkę dla wszystkich nadawców, wystarczy podać @ (lub nic) w miejsce adresu nadawcy. Jeśli jako parametr komendy podany zostanie defer, wówczas wyświetlona zostanie kolejka listów, które zostały odłożone do wysyłki w późniejszym terminie, z powodu odmowy wysyłki listu przez serwer SMTP przy wcześniejszych próbach (czyli kolejka z podkatalogu defer/)

Rozesłanie kolejki

Do wysyłki służy komenda send. Przetwarza ona całą kolejkę i w przypadku skutecznego przekazania e-maila do serwera SMTP plik jest z kolejki usuwany i przenoszony do podkatalogu sent/. Przy czym nie są kontrolowane ewentualne niepowodzenia w dostarczeniu poczty do adresata - to zadanie leży już po stronie serwera SMTP i ewentualne zwroty będą obsługiwane przez ten serwer. Podstawowa składnia wysyłki poczty:

smailer send foo@example.com

Spowoduje to wysyłkę wszystkich e-maili z kolejki dla konta nadawcy foo@example.com. Aby wysłać pocztę od razu dla wszystkich kont, wystarczy podać adres @ (lub nie podać go wcale).

W codziennej eksploatacji nie będziemy jednak wykonywać tej komendy ręcznie, będziemy za to chcieli, aby informacja była zapisywana do pliku dziennika. W tym celu należy wywoływać polecenie z opcją --daemon:

smailer --daemon send @

W tym trybie wszystkie informacje będą zapisywane do pliku dziennika umieszczonego w katalogu roboczym, np. dla konta sowa:

/home/sowa/.sowang/var/log/smailer.log

Automatyzacja procesu

Wszystkie wcześniej wymienione przykłady wymagają ręcznego wywołania z linii komend, należy to zawsze wykonać w pierwszej kolejności aby mieć pewność, że poprawnie zostało wszystko skonfigurowane. Gdy mamy już taką pewność, można skonfigurować automatyczną wysyłkę poprzez mechanizm harmonogramu zadań usługi sowizor. Zadanie dla smailera dodać należy poleceniem sowizor schedule:

sowizor schedule add smailer

Program wypełnia domyślne parametry zadania, a następnie pozwala na ich modyfikację (dla każdej opcji zadane jest pytanie i należy wartość domyślną zatwierdzić klawiszem Enter).

 

  • No labels