Postfix mit Googlemail als Relay für ausgehende Nachrichten betreiben

Aus Dirk's Wiki
Zur Navigation springen Zur Suche springen

Will man von seinem lokalen Rechner (Server), mit wechselnder IP Adresse, Mails verschicken lassen und umgehen das diese ständig im Spam Ordner landen, hier ein kleines HowTo mit Postfix und Googlemail als Relay.

Postfix installieren

Als erstes erforderliche Pakete installieren.

$ apt-get install postfix
Postfix konfigurieren.
$ dpkg-reconfigure postfix
  • Internet mit Smarthost
  • Email FQDN angeben - (Rechnername)
  • Smtp-Relay-Server - smtp.googlemail.com
  • Synchrone Aktivierung der Warteschlange - nein
  • Lokales Netz eintragen - Bsp. 192.168.1.0/24
  • Postfachgröße in Bytes - 0 (unendlich)
  • Zeichen für Adresserweiterung - +
  • Zu verwendende IP Protololle - IPv4
Konfig Datei bearbeiten

Als nächstes die Datei /etc/postfix/main.cf bearbeiten.

# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# Authentifizierung einschalten
smtp_sasl_auth_enable = yes
# Wie erfolgt die Authentifizierung
smtp_sasl_security_options = noanonymous
# Datei die in die Datenbank umgewandelt wird (enhält die Authentifizierung zum Relay)
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
# Falls Google Probleme mit TLS hat
smtp_tls_security_level = may

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = hostname
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = hostname, localhost.localdomain, localhost
relayhost = smtp.googlemail.com
# das eigene netzwerk sollte mit rein
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.1.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = ipv4
default_transport = smtp
relay_transport = smtp

Wichtig sind folgende Zeilen:

smtp_sasl_auth_enable = yes
Einschalten der Authentifizierung
smtp_sasl_security_options = noanonymous
Die Authentifizierung erfolgt nicht anonym, es wird ein Passwort benötigt
smtp_sasl_password_maps = hashː/etc/postfix/sasl_password
Diese Datei wird im nächsten Schritt erstellt und enthält das Smtp Relay, Email Adresse und Passwort
smtp_tls_security_level = may
Falls Google Probleme mit TLS hat
myhostname = hostname
mydestination = hostname, localhost.localdomain, localhost
Hier sollte "hostname" durch den eigenen Hostnamen des Rechners ersetzt werden.
relayhost = smtp.googlemail.com
Googles Smtp Adresse
Passwort Datei erstellen

Als nächstes die Datei /etc/postfix/sasl_password erstellen wie in der main.cf mit der Variablen smtp_sasl_password_maps angegeben.

# In dieser Datei werden die smtp Relays untereinander eingegeben
# Eine Zeile pro User mit: Relay Benutzername:Password
smtp.googlemail.com user@example.com:password
Passwort Datei umwandeln

Wenn die main.cf bearbeitet und die Passwort Datei erstellt sind muss die Passwort Datei noch in eine Datenbank umgewandelt werden. Dies wird duch das Programm postmap erledigt.

$ postmap /etc/postfix/sasl_password
Mailsender installieren

Fehlt noch ein Mailsender. z.B. bsd-mailx um Mails auch lokal zu verschicken zu können.

$ apt-get install bsd-mailx
Testen

Zum Schluss kann z.B. von der Kommandozeile oder aus einem Programm heraus getestet werden.

$ echo "Heute ist ein schöner Tag" | mailx -s Betreff foo@bar.de