Autoodpowiedź czyli do czego możemy zaprząc procmaila
Autoodpowiedź jest szeroko stosowaną funkcją serwera poczty. Tak przynajmniej myśli większość typowych użytkowników poczty elektronicznej. Jeśli weźmiemy pod uwagę serwery SMTP typowe dla Linuxa to może się okazać, że autoodpowiedź można zrealizować na kilka sposobów i to zupełnie niezależnie od używanego MTA. Pomijam tutaj aspekt przydatności tej funkcji oraz wszystkich za i przeciw. Wracając do Linuxa najprościej jest zainstalować pakiet vacation. Możemy jednak zrobić wszystko jeszcze inaczej. Poniżej zamieściłem przykładowy plik .procmailrc, który umożliwi zrealizowanie opdowiedzi wakacyjnej bez instalowania dodatkowych pakietów.
LOGFILE=$HOME/.procmail_log vacationFlagFile = $HOME/.vac vacationMsgFile = $HOME/.vacation_msg # Jesli dostales wiadomosc Vacation_mode_On :0 * ^Subject: Vacation_mode_On { # Zapisz tresc wiadomosci :0 bc: $vacationMsgFile # Wlacz znacznik wakacyjny :0 | touch $vacationFlagFile } # Jesli otrzymales wiadomosc Vacation_mode_Off :0 * ^Subject: Vacation_mode_Off { # Usun komunikat i znacznik wakacyjna :0 | rm $vacationFlagFile $vacationMsgFile } # Jesli istnieje plik vacationFlagFile :0 *$ ? $IS_EXIST $vacationFlagFile { :0hc * ! ^FROM_DAEMON # Usun komunikaty systemowe * ! ^Subject:.*SPAM # Usun spam * ! ^X-Loop: IWasHere # Usun wiadomosci zapetlone # Odpowiedz komunikatem z vacationMsgFile | (formail -rA "Precedence: junk" -A "X-Loop: IWasHere" ; \ cat $vacationMsgFile) \ | $SENDMAIL -oi -t }
Czym różni się powyższy przykład od setki innych, które można znaleźć w internecie? Przede wszystkim w tym przypadku, żeby włączyć autoodpowiedź wystarczy wysłać na swój adres wiadomość z tematem “Vacation_mode_On”. W jej treści zaś umieszczamy komunikat autoodpowiedzi. Odpowiednio, żeby wyłączyć autoodpowiedź wysyłamy wiadomość “Vacation_mode_On”.
Ponadto skrypt odfiltrowywuje komunikaty systemowe, wiadomości zapętlone stanowiące utrapienie wielu administratorów oraz spam. To ostatnie oczywiście jeśli mamy zainstalowane odpowiednie oprogramowanie (np. SpamAssassin), które doda do tematu podejrzanej wiadomości słowo kluczowe SPAM.
Skrypt ten zapewne można poprawiać i dalej optymalizować do czego zachęcam. W trakcie korzystania odkryłem np. że istotne jest kodowanie polskich znaków w wiadomości włączającej autoodpowiedź. Początkowo nie stosowałem wogóle polskich znaków ale rzecz jasna jest to rozwiązanie na krótką metę. Dlatego postanowiłem dodać do skryptu konwerter standardów kodowania. Ale o tym może następnym razem…
MG
Tagi: Linux, poczta elektroniczna, Procmail