Inhaltsverzeichnis

Postfix vacation

vacation ist ein „autoresponder“ - also ein Programm, welches automatisch auf eingehende e-Mails antwortet. vacation kann z.B. zum Versenden von automatischen Urlaubs- oder Abwesenheitsnachrichten verwendet werden.

Postfix vacation herunterladen

Bevor mit der Installation von vacation begonnen werden kann, sollte eine „stabile“ Version von vacation - SourceForge.net heruntergeladen werden.

Die hier verwendete und besprochene Version ist die Version vacation-1.2.7.0.tar.gz.

Postfix vacation installieren

Nach dem herunterladen einer Version von vacation in z.B. das Verzeichnis /tmp auf den lokalen Rechner, sollte sich folgende Datei

vacation-1.2.7.0.tar.gz

im Verzeichnis /tmp befinden.

Das heruntergeladene Archiv mit dem Namen vacation-1.2.7.0.tar.gz kann mit folgendem Befehl entpackt werden:

$ tar xvfz vacation-1.2.7.0.tar.gz

Anschließend sollte sich ein Verzeichnis mit dem Namen vacation-1.2.7.0.tar.gz im Verzeichnis /tmp befinden:

# ll /tmp/
...
drwxr-xr-x 5   1000   1000  4096 Jul  3  2008 vacation-1.2.7.0
-rw-r--r-- 1 root   root   63849 Jul  3  2008 vacation-1.2.7.0.tar.gz
...

Abschliessend kann das heruntergeladene Archiv vacation-1.2.7.0.tar.gz mit folgendem Befehl gelöscht werden:

$ rm /tmp/vacation-1.2.7.0.tar.gz

Ab hier werden root-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um root zu werden geben Sie bitte folgenden Befehl ein:

$ su -
Password: 

Um selbst kompilieren zu können ist es erforderlich das ein Compiler auf dem Rechner verfügbar ist. Unter Linux ist gcc (gcc.i386) der Standard-Compiler. Falls dieser noch nicht installiert sein sollte kann dies mit folgendem Befehl nachgeholt werden:

# yum install gcc

Nach erfolgreichem auflösen der Abhängigkeiten, sollte ein lauffähiger Compiler zur Verfügung stehen.

Nachfolgend kann ein Wechsel in das Verzeichnis /tmp/vacation-1.2.7.0 mit folgendem Befehl:

# cd /tmp/vacation-1.2.7.0

durchgeführt werden.

:!: WICHTIG - Um Fehler bei der Installation zu vermeiden, muss die /tmp/vacation-1.2.7.0/Makefile-Datei wie folgt angepasst werden (nur relevanter Auszug):

Die relevanten Änderungen gegenüber der Standard Makefile, sind mit folgendem Kommentar

# Tachtler

versehen.

...
# where things go
BINDIR          = $(PREFIX)/bin
VACATION        = $(BINDIR)/vacation
VACLOOK         = $(BINDIR)/vaclook
# Tachtler
# default: MANDIR               = $(PREFIX)/man/man
MANDIR          = /usr/share/man/man
MANEXT1         = 1
 
VERSION         = 1
SUBVERSION      = 2
PATCHLEVEL      = 7
...

Durch Eingabe nachfolgender Befehle die Kompilation und Installation durchgeführt werden:

# make
gcc  -g -Wall -DMAIN   -Xlinker -warn-common -D_PATH_VACATION=\"/usr/bin/vacation\" -o vacation vacation.c strlcpy.c strlcat.c rfc822.c -lgdbm
# make install
install -s -m 755 vacation /usr/bin/vacation
install -m 755 vaclook /usr/bin/vaclook
./html2man.pl < vacation.html > /usr/share/man/man1/vacation.1
install -m 444 vaclook.man /usr/share/man/man1/vaclook.1

Postfix vacation konfigurieren

Zur Konfiguration von vacation ist es notwendig eine Systemgruppe namens vacation mit folgendem Befehl zu erstellen:

# groupadd -r vacation

und einen Systembenutzer ebenfalls namens vacation mit folgendem Befehl zu erstellen:

# useradd -r -c "Postfix vacation filter" -d /var/spool/vacation vacation -g vacation -s /sbin/nologin -m

Zu Überprüfung, ob das erstellen einer Systemgruppe namens vacation erfolgreich war kann folgender Befehl mit nachfolgender Ausgabe genutzt werden:

# cat /etc/group | grep vacation
vacation:x:107:

Zu Überprüfung, ob das erstellen eines Systembenutzers namens vacation ebenfalls erfolgreich war kann folgender Befehl mit nachfolgender Ausgabe genutzt werden:

# cat /etc/passwd | grep vacation
vacation:x:104:107:Postfix vacation filter:/var/spool/vacation:/sbin/nologin

Eine Überprüfung, ob das home-Verzeichnis angelegt wurde, kann mit folgendem Befehl durchgeführt werden und sollte eine Ausgabe in etwa wie folgende anzeigen:

# ll -la /var/spool/vacation
total 36
drwx------  4 vacation vacation 4096 Jan 13 14:51 .
drwxr-xr-x 14 root     root     4096 Jan 13 14:51 ..
-rw-r--r--  1 vacation vacation   33 Jan 13 14:51 .bash_logout
-rw-r--r--  1 vacation vacation  176 Jan 13 14:51 .bash_profile
-rw-r--r--  1 vacation vacation  124 Jan 13 14:51 .bashrc
drwxr-xr-x  3 vacation vacation 4096 Jan 13 14:51 .kde
drwxr-xr-x  4 vacation vacation 4096 Jan 13 14:51 .mozilla
-rw-r--r--  1 vacation vacation  658 Jan 13 14:51 .zshrc

Abschließend kann das automatisch neu angelegte home-Verzeichnis mit folgendem Befehl und nachfolgender Ausgabe von unnötigem „Balast“ bereinigt werden:

# rm /var/spool/vacation/.* -rf
rm: cannot remove `.' or `..'
rm: cannot remove `.' or `..'

* Die beiden Hinweise können getrost ignoriert werden!

Postfix vacation /etc/postfix/master.cf

Um vacation in Postfix zu integrieren, sind nachfolgende Konfigurationseinstellungen in der Postfix-Konfigurationsdatei /etc/postfix/master.cf notwendig.

Die relevanten Änderungen gegenüber der Standard-Konfiguration, sind mit folgendem Kommentar

# Tachtler

versehen.

Anpassungen vorhandener Einstellungen in /etc/postfix/master.cf am Ende der Konfiguratiosndatei (nur relevanter Ausschnitt):

...
# Tachtler
# AMaViS - Outgoing from AMaViS, BACK to Postfix 
127.0.0.1:10025 inet  n       -       n       -       -       smtpd
        -o content_filter=
        -o smtpd_proxy_filter=
        -o smtpd_authorized_xforward_hosts=127.0.0.0/8
        -o smtpd_client_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o smtpd_data_restrictions=
        -o mynetworks=0.0.0.0/32,127.0.0.0/8,192.168.0.0/28
        -o receive_override_options=no_unknown_recipient_checks,no_address_mappings
...
...
...
# Tachtler
# vacation auto-responder e-Mail
vacation  unix  -       n       n       -       5       pipe
  flags=F       user=vacation argv=/usr/bin/vacation
...

Erläuterungen der Änderungen

In diesem Falls wird die Option -o receive_override_options um no_address_mappings erweitert, da es sonst beim Einsatz eines Virenfilters wie z.B. AMaViS zum zweimaligen durchlaufen der Konfiguratiosndatei virtual_alias_maps kommt und vacation würde zwei mal eine „Abwesenheitsnachricht“ versenden!

  * **vacation  unix  -       n       n       -       5       pipe
  flags=F       user=vacation argv=/usr/bin/vacation**

Aufruf von vacation, wobei nur 5 Instanzen gleichzeitig gestartet sein dürfen!

Postfix vacation /etc/postfix/main.cf

Um vacation in Postfix zu integrieren, sind nachfolgende Konfigurationseinstellungen in der Postfix-Konfigurationsdatei /etc/postfix/main.cf notwendig.

Die relevanten Änderungen gegenüber der Standard-Konfiguration, sind mit folgendem Kommentar

# Tachtler

versehen.

Anpassungen vorhandener Einstellungen in /etc/postfix/main.cf (nur relevanter Ausschnitt):

...
# Auto responder vacation 
# transport_maps for user of domain vacation.tachtler.net
# permit only one e-Mail at same time to vacation
#
transport_maps = btree:/etc/postfix/transport_maps
vacation_recipient_limit=1
...

Postfix vacation /etc/postfix/virtual_alias_domains

Um vacation in Postfix zu integrieren, sind nachfolgende Konfigurationseinstellungen in der Postfix-Konfigurationsdatei /etc/postfix/virtual_alias_domains notwendig.

Anpassungen vorhandener Einstellungen in /etc/postfix/virtual_alias_domains (nur relevanter Ausschnitt):

...
vacation.tachtler.net           tachtler.net
...

:!: Als Trennzeichen zwischen den beiden Einträgen, sollte am besten die [TAB]-Taste verwendet werden, es ist aber auch die Trennung durch [Leerzeichen] möglich!

:!: Zum Abschluss muss auch hier diese Text-Datei in ein hash-Format, oder besser noch in das Format btree mithilfe des Postfix eigenen Befehls postmap umgewandelt werden.

Der Aufruf für die Umwandlung in das z.B. btree-Format lautet wie folgt:

# postmap btree:/etc/postfix/virtual_alias_domains

Anschließend sollte eine neue Datei mit dem Namen /etc/postfix/virtual_alias_domains.db entstanden sein.

Dies kann mit folgendem Befehl überprüft werden:

# ll /etc/postfix/virtual_alias_domains*
-rw-r--r-- 1 root root  531 Dec  3 09:11 /etc/postfix/virtual_alias_domains
-rw-r--r-- 1 root root 8192 Dec  3 09:14 /etc/postfix/virtual_alias_domains.db

Damit ist die Umwandung in das btree-Format abgeschlossen.

Postfix vacation /etc/postfix/virtual_alias_maps

Um vacation in Postfix zu integrieren, sind nachfolgende Konfigurationseinstellungen in der Postfix-Konfigurationsdatei /etc/postfix/virtual_alias_maps notwendig.

Anpassungen vorhandener Einstellungen in /etc/postfix/virtual_alias_maps (nur relevanter Ausschnitt):

...
@vacation.tachtler.net               @tachtler.net
postmaster@tachtler.net              postmaster@tachtler.net, \postmaster@vacation.tachtler.net
abuse@tachtler.net                   abuse@tachtler.net, \abuse@vacation.tachtler.net
...

:!: Als Trennzeichen zwischen den beiden Einträgen, sollte am besten die [TAB]-Taste verwendet werden, es ist aber auch die Trennung durch [Leerzeichen] möglich!

:!: Zum Abschluss muss auch hier diese Text-Datei in ein hash-Format, oder besser noch in das Format btree mithilfe des Postfix eigenen Befehls postmap umgewandelt werden.

Der Aufruf für die Umwandlung in das z.B. btree-Format lautet wie folgt:

# postmap btree:/etc/postfix/virtual_alias_maps

Anschließend sollte eine neue Datei mit dem Namen /etc/postfix/virtual_alias_maps.db entstanden sein.

Dies kann mit folgendem Befehl überprüft werden:

# ll /etc/postfix/virtual_alias_maps*
-rw-r--r-- 1 root root  531 Dec  3 09:11 /etc/postfix/virtual_alias_domains
-rw-r--r-- 1 root root 8192 Dec  3 09:14 /etc/postfix/virtual_alias_domains.db

Damit ist die Umwandung in das btree-Format abgeschlossen.

Postfix vacation /etc/postfix/transport_maps

Um vacation in Postfix zu integrieren, sind nachfolgende Konfigurationseinstellungen in der Postfix-Konfigurationsdatei /etc/postfix/transport_maps notwendig.

Dafür ist die Konfigurationsdatei /etc/postfix/transport_maps mit folgendem Befehl neu zu erstellen:

# touch /etc/postfix/transport_maps

Danach sollte der Inhalt wie folgt aussehen:

vacation.tachtler.net        vacation:

:!: Als Trennzeichen zwischen den beiden Einträgen, sollte am besten die [TAB]-Taste verwendet werden, es ist aber auch die Trennung durch [Leerzeichen] möglich!

:!: Am Ende der Zeile muss ein DOPPELPUNKT stehen!

:!: Zum Abschluss muss auch hier diese Text-Datei in ein hash-Format, oder besser noch in das Format btree mithilfe des Postfix eigenen Befehls postmap umgewandelt werden.

Der Aufruf für die Umwandlung in das z.B. btree-Format lautet wie folgt:

# postmap btree:/etc/postfix/transport_maps

Anschließend sollte eine neue Datei mit dem Namen /etc/postfix/transport_maps.db entstanden sein.

Dies kann mit folgendem Befehl überprüft werden:

# ll /etc/postfix/transport_maps*
-rw-r--r-- 1 root root   33 Jan 13 15:27 /etc/postfix/transport_maps
-rw-r--r-- 1 root root 8192 Jan 13 15:28 /etc/postfix/transport_maps.db

Damit ist die Umwandung in das btree-Format abgeschlossen.

Postfix vacation einrichten

Jeder sogenannte lokale shell-Nutzer kann mithilfe von vacation seine eigenen automatischen „Abwesenheitsnachrichten“ einstellen!

(home) ~/.vacation.msg

Die persönliche „Abwesenheitsnachrichten“ des jeweiligen shell-Nutzers liegt in dessen home-Verzeichnis und lautet auf .vacation.msg.

:!: Der führende Punkt besagt, dass dies eine versteckte Datei ist!

Dafür ist die Konfigurationsdatei ~/.vacation.msg mit folgendem Befehl neu zu erstellen:

# touch ~/.vacation.msg

Danach könnte der Inhalt wie folgt aussehen:

Subject: Abwesenheistnachricht | Message of vacation

Ich werde vom tt.mm.jjjj bis einschliesslich tt.mm.jjjj nicht erreichbar sein!
Ihre e-Mail betreffend: "$SUBJECT"
werde nach meiner R&uuml;ckkehr beantworten.

Freundliche Gr&uuml;sse

Vorname Nachname


I will not be reading my e-Mail from mm-dd-yyyy until mm-dd-yyyy.
Your e-Mail concerning: "$SUBJECT"
will be read, wehn I'm back.

Best regards

Nickname Surname

(home) ~/.forward

Um die persönliche „Abwesenheitsnachrichten“ des jeweiligen shell-Nutzers zu aktivieren oder zu deaktivieren, liegt in dessen home-Verzeichnis folgende Konfigurationsdatei .forward.

:!: Der führende Punkt besagt, dass dies eine versteckte Datei ist!

Dafür ist die Konfigurationsdatei ~/.forward mit folgendem Befehl neu zu erstellen:

# touch ~/.forward

Danach könnte der Inhalt wie folgt aussehen:

# \user "| /usr/bin/vacation user"
\klaus "| /usr/bin/vacation klaus"

Postfix vacation ausschalten

Um keine „Abwesenheitsnachrichten“ mehr zu versenden, kann mit folgendem Befehl die Konfigurationsdatei ~/.forward z.B. in ~/.forward.unused umbenannt werden:

# mv ~/.forward ~/.forward.unused

:!: Damit ist das Zustellen von „Abwesenheitsnachrichten“ solange deaktiviert, bis diese Umbenennung wieder Rückgängig gemacht wird!