Categories
General

postfix: send via smarthost

To be able to send emails from a linux server via a smarthost just add this to your /etc/postfix/main.cf:

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:smtp@example.com:mypassword
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
relayhost = mail.example.com:587

I use this on my home-server/NAS behind a DSL line to get the root-messages (refer https://www.bergercity.de/general/postfix-redirect-mails-for-root/).

Categories
General

postfix: redirect mails for root

Short note: redirect local root mails (cron, mdadm, …) to an external address:

# install postfix
apt-get install postfix

# add alias for root
echo "root: otto@example.com" >> /etc/aliases

# reload aliases for postfix
newaliases
Categories
Linux

postfix: execute commands (virtual domains)

Nach und nach stelle ich alle Maschinen von qmail auf Postfix um. Ein letztes Thema bei der Migration war die Integration von diversen Scripten beim Mail-Empfang. Zwar kann man Postfix mittels einfacher Anweisung in der /etc/aliases das Ausführen von Scripten etc. beibringen – jedoch ist es nicht so einfach wenn man mehrere Domains (Virtual Domains) auf dem Server bedienen will. Dazu ist ein klein wenig mehr Aufwand notwendig…

Zunächst wird mittels einer Postfix-Datenbank gesteuert welche Mails beim Script landen sollen:

#/etc/postfix/transportregex
/trac-project-x@example.com/         trac:project-x
/trac-project-y@example.com/         trac:project-y

Man beachte die Strings hinter dem “:”, diese werden hinterher von unserem Script-Service (hier: trac) ausgewertet. Nach dem Erstellen der Datei muss diese in eine Postfix-DB umgewandelt werden (dies ist auch nach jeder Änderung der Datei nötig):

postmap /etc/postfix/transportregex

Die soeben erstellte Datei wird jetzt in die Postfix-Konfiguration eingebunden:

#/etc/postfix/main.cf
transport_maps = regexp:/etc/postfix/transportregex, hash:/var/spool/postfix/plesk/transport

Jetzt wird noch ein neuer Postfix-Service benötigt welcher das Script ansteuert:

#/etc/postfix/master.cf
trac unix - n n - 10 pipe flags=DRhu user=nobody argv=/usr/local/bin/email2trac -p ${nexthop}

Hier wird das Script “email2trac” angesteuert, welches Mails direkt in ein Trac-Ticket umwandelt. Hier ist praktisch, dass man jetzt mittels der Variable ${nexthop} direkt das ursprüngliche Transportziel auswerten kann (siehe oben).