Postfix virtual table: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 4: Zeile 4:
 
* Ermöglicht die Trennung von Mail-Adressen und Systembenutzern   
 
* Ermöglicht die Trennung von Mail-Adressen und Systembenutzern   
 
* Erfordert einen Maildir- oder mbox-Speicherort für die Zustellung   
 
* Erfordert einen Maildir- oder mbox-Speicherort für die Zustellung   
 +
 +
===Syntax===
 +
;beliebige Adress umwandeln
 +
fiktive@it2XX.int  real@it2XX.int
 +
;catch all
 +
@it2XX.int  real@it2XX.int
  
 
=== Beispiel: Virtual-Alias-Tabelle erstellen ===   
 
=== Beispiel: Virtual-Alias-Tabelle erstellen ===   
Zeile 11: Zeile 17:
 
   technik@it213.int leroy@it213.int
 
   technik@it213.int leroy@it213.int
 
   vertrieb@it213.int martha@it213.int
 
   vertrieb@it213.int martha@it213.int
 +
  @it213.int martha@it213.int
 
   </pre>   
 
   </pre>   
 
;Nach jeder Änderung die Tabelle aktualisieren:   
 
;Nach jeder Änderung die Tabelle aktualisieren:   
Zeile 23: Zeile 30:
 
=== Postfix neu laden ===   
 
=== Postfix neu laden ===   
 
;Änderungen übernehmen:   
 
;Änderungen übernehmen:   
*postfix reload
+
*postfix reload
 +
 
  
== Virtuelle Mailbox für '''service@it2XX.int''' ==
+
== Virtuelle Mailbox für '''service@it2XX.int''' ==
* Eine virtuelle Mailbox für '''service@it1XX.int''' wird eingerichtet, sodass die Mails unter '''/var/mail/service/''' gespeichert werden.
+
* Eine virtuelle Mailbox für '''service@it2XX.int''' wird eingerichtet, sodass die Mails unter '''/var/mail/service/''' gespeichert werden.
  
=== Virtuelle Mailbox-Tabelle erstellen ===
+
=== Systembenutzer anlegen ===
;Datei erstellen oder bearbeiten:
+
;Virtuellen Mailbox-User anlegen:
*vi /etc/postfix/virtual_mailbox_maps 
+
* groupadd -g 5000 vmail
  <pre>
+
* useradd -u 5000 -g 5000 -d /var/mail vmail
  service@it2XX.int    /var/spool/service
 
  archive@it2XX.int    /var/mail/archive/
 
  reports@it2XX.int    /var/mail/reports/
 
  </pre> 
 
;Nach jeder Änderung die Tabelle aktualisieren: 
 
*postmap /etc/postfix/virtual_mailbox_maps
 
  
=== In /etc/postfix/main.cf eintragen ===
+
=== Virtuelle Mailbox-Tabelle erstellen ===
;Datei bearbeiten:
+
;Datei erstellen oder bearbeiten:
*vi /etc/postfix/main.cf 
+
* vi /etc/postfix/virtual_mailbox_maps
;Folgende Zeile hinzufügen oder anpassen: 
+
  service@it2XX.int    service/
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps
 
;Beispielsweise mit:
 
postconf -e "virtual_alias_maps = hash:/etc/postfix/virtual"
 
  
=== Verzeichnis für die Mailbox erstellen === 
+
;Nach jeder Änderung die Tabelle aktualisieren:
*mkdir -p /var/mail/archive/ 
+
* postmap /etc/postfix/virtual_mailbox_maps
*mkdir -p /var/mail/reports/ 
 
*chown -R vmail:vmail /var/mail/archive/ /var/mail/reports/ 
 
*chmod -R 770 /var/mail/archive/ /var/mail/reports/
 
  
=== Postfix neu starten ===   
+
=== In /etc/postfix/main.cf eintragen ===
*systemctl restart postfix
+
;Folgende Zeilen hinzufügen oder anpassen:
 +
virtual_mailbox_domains = it2XX.int
 +
  virtual_mailbox_base = /var/mail
 +
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps
 +
virtual_uid_maps = static:5000
 +
virtual_gid_maps = static:5000
  
== Catch-All für nicht definierte Adressen == 
+
!!!'''Wichtig'''!!! it2XX.int darf '''nicht''' in mydestination stehen – sonst ignoriert Postfix die virtual_mailbox_maps.
* Leitet alle E-Mails, die nicht explizit definiert sind, an '''martha@it1XX.int''' weiter.
 
  
=== Virtual-Alias-Tabelle für Catch-All erstellen === 
+
;mydestination anpassen:
;Datei bearbeiten oder erstellen:
+
  postconf -e "mydestination = mail.it2XX.int, localhost"
*vi /etc/postfix/virtual_alias_maps  
 
  <pre>
 
  @it1XX.int    catchall@it1XX.int
 
  </pre> 
 
;Nach jeder Änderung die Tabelle aktualisieren: 
 
*postmap /etc/postfix/virtual_alias_maps 
 
  
=== In /etc/postfix/main.cf eintragen ===
+
=== Verzeichnis für die Mailbox erstellen ===
;Datei bearbeiten: 
+
* mkdir -p /var/mail/service/
*vi /etc/postfix/main.cf 
+
* chown -R vmail:vmail /var/mail/service/
;Folgende Zeile hinzufügen oder anpassen: 
 
virtual_alias_maps = hash:/etc/postfix/virtual_alias_maps 
 
  
=== Postfix neu starten ===
+
=== Postfix neu starten ===
*systemctl restart postfix
+
* systemctl restart postfix
  
 
== Test der Konfiguration ==   
 
== Test der Konfiguration ==   
 
=== Virtuelle Mailbox testen ===   
 
=== Virtuelle Mailbox testen ===   
*Sende eine Testmail an '''archive@it1XX.int''':   
+
Sende eine Testmail an '''archive@it1XX.int''':   
  <pre>
+
*echo "Testmail an Archive" | mail -s "Test" archive@it1XX.int
  echo "Testmail an Archive" | mail -s "Test" archive@it1XX.int
+
Überprüfe die Mail-Logs:   
  </pre> 
+
*journalctl -fu postfix
*Überprüfe die Mail-Logs:
 
  <pre>
 
  tail -f /var/log/mail.log
 
  </pre> 
 
 
 
=== Catch-All testen ===  
 
*Sende eine Testmail an eine nicht existierende Adresse, z. B. '''nichtda@it1XX.int''': 
 
  <pre>
 
  echo "Testmail an nicht definierte Adresse" | mail -s "Catch-All Test" nichtda@it1XX.int
 
  </pre> 
 
*Überprüfe die Weiterleitung an '''catchall@it1XX.int''' im Log: 
 
  <pre>
 
  tail -f /var/log/mail.log
 
  </pre>
 

Aktuelle Version vom 5. Juni 2026, 09:16 Uhr

virtual (Virtuelle Mailbox-Zustellung)

  • Ordnet E-Mail-Adressen virtuellen Mailboxen zu
  • Wird für virtuelle Domains genutzt
  • Ermöglicht die Trennung von Mail-Adressen und Systembenutzern
  • Erfordert einen Maildir- oder mbox-Speicherort für die Zustellung

Syntax

beliebige Adress umwandeln
fiktive@it2XX.int  real@it2XX.int
catch all
@it2XX.int  real@it2XX.int

Beispiel: Virtual-Alias-Tabelle erstellen

Datei erstellen
  • vi /etc/postfix/virtual
  technik@it213.int leroy@it213.int
  vertrieb@it213.int martha@it213.int
  @it213.int martha@it213.int
  
Nach jeder Änderung die Tabelle aktualisieren
  • postmap /etc/postfix/virtual

In /etc/postfix/main.cf eintragen

Datei bearbeiten
  • vi /etc/postfix/main.cf
Folgende Zeile hinzufügen oder anpassen
virtual_alias_maps = hash:/etc/postfix/virtual  

Postfix neu laden

Änderungen übernehmen
  • postfix reload


Virtuelle Mailbox für service@it2XX.int

  • Eine virtuelle Mailbox für service@it2XX.int wird eingerichtet, sodass die Mails unter /var/mail/service/ gespeichert werden.

Systembenutzer anlegen

Virtuellen Mailbox-User anlegen
  • groupadd -g 5000 vmail
  • useradd -u 5000 -g 5000 -d /var/mail vmail

Virtuelle Mailbox-Tabelle erstellen

Datei erstellen oder bearbeiten
  • vi /etc/postfix/virtual_mailbox_maps
 service@it2XX.int    service/
Nach jeder Änderung die Tabelle aktualisieren
  • postmap /etc/postfix/virtual_mailbox_maps

In /etc/postfix/main.cf eintragen

Folgende Zeilen hinzufügen oder anpassen
virtual_mailbox_domains = it2XX.int
virtual_mailbox_base = /var/mail
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

!!!Wichtig!!! it2XX.int darf nicht in mydestination stehen – sonst ignoriert Postfix die virtual_mailbox_maps.

mydestination anpassen
postconf -e "mydestination = mail.it2XX.int, localhost"

Verzeichnis für die Mailbox erstellen

  • mkdir -p /var/mail/service/
  • chown -R vmail:vmail /var/mail/service/

Postfix neu starten

  • systemctl restart postfix

Test der Konfiguration

Virtuelle Mailbox testen

Sende eine Testmail an archive@it1XX.int:

  • echo "Testmail an Archive" | mail -s "Test" archive@it1XX.int

Überprüfe die Mail-Logs:

  • journalctl -fu postfix