Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
mailserver:mailserver [2017/01/21 18:11]
chrisge [Spam- und Virenfilter]
mailserver:mailserver [2018/05/26 02:18] (aktuell)
chrisge
Zeile 8: Zeile 8:
 **Softwarevoraussetzungen:​** Paketverwaltung | Texteditor | [[Mailserver#​Voraussetzungen |siehe weiter unten]] \\ **Softwarevoraussetzungen:​** Paketverwaltung | Texteditor | [[Mailserver#​Voraussetzungen |siehe weiter unten]] \\
 **Schwierigkeitsgrad:​** Schwer \\ **Schwierigkeitsgrad:​** Schwer \\
-**Ausgetestet mit folgenden Betriebssystemen:​** Ubuntu | Debian ​(Lenny, Squeeze, Wheezy teilweise Probleme bei Dovecot-Postfix Integration) ​| teilweise auch andere Distributionen+**Ausgetestet mit folgenden Betriebssystemen:​** Ubuntu | Debian | teilweise auch andere Distributionen
 </​WRAP>​ </​WRAP>​
  
Zeile 16: Zeile 16:
 In normalen **Ubuntu** Installationen (Root-/​VServer siehe Debian) kann dies durch den Befehl ''​sudo''​ erreicht werden. \\ In normalen **Ubuntu** Installationen (Root-/​VServer siehe Debian) kann dies durch den Befehl ''​sudo''​ erreicht werden. \\
 Bei **Debian** wird bei der Installation ein Passwort für den Root-Benutzer festgelegt, so kann man sich entweder direkt als Root  oder als "​normaler"​ Benutzer mit Eingabe von ''​su'' ​ als Root einloggen (Root-Passwort benötigt) -> ''​sudo''​ bleibt dann überflüssig! Bei **Debian** wird bei der Installation ein Passwort für den Root-Benutzer festgelegt, so kann man sich entweder direkt als Root  oder als "​normaler"​ Benutzer mit Eingabe von ''​su'' ​ als Root einloggen (Root-Passwort benötigt) -> ''​sudo''​ bleibt dann überflüssig!
 +</​WRAP>​
 +<WRAP alert important 68%>
 +**Archiv:** Diese Anleitung behandelt ältere Softwareversionen,​ kann aber noch als Referenz verwendet werden. Der vorstellte Ansatz mit arcor als Relayhost funktioniert nicht mehr! Hier muss man zu bezahlten Relayhosts oder Mailaccounts bei Hostern wie mailbox.org oder Posteo (erlauben teilweise die Nutzung einer eignen Domain) zurückgreifen. ​
 </​WRAP>​ </​WRAP>​
  
Zeile 25: Zeile 28:
   - Weiterleitung von Port 25 an den Host mit dem Mailserver   - Weiterleitung von Port 25 an den Host mit dem Mailserver
   - du hast den Beitrag [[Einführung]] gelesen   - du hast den Beitrag [[Einführung]] gelesen
-Wenn du alle erfüllt hast, kannst du nun mit den einzelnen Diensten starten. Falls du Fragen hast, kannst du dich per E-Mail an mich wenden (support[at]mein.homelinux[dot]com).+Wenn du alle erfüllt hast, kannst du nun mit den einzelnen Diensten starten. Falls du Fragen hast, kannst du dich per E-Mail an mich wenden (cw[at]chrisge[dot]org).
  
 ==== Funktionen ==== ==== Funktionen ====
Zeile 42: Zeile 45:
 Folgende Pakete werden benötigt: Folgende Pakete werden benötigt:
 <​code>​ <​code>​
-postfix ​            #das "​Grundpaket"​ +postfix ​            # das "​Grundpaket"​ 
-libsasl2-modules ​   #weil wir uns bei Arcor authentifizieren müssen +libsasl2-modules ​   # weil wir uns bei Arcor authentifizieren müssen 
-mailutils ​          #um das Ganze zu testen ​+mailutils ​          # um das Ganze zu testen ​
 </​code>​ </​code>​
 <WRAP right info 40%> <WRAP right info 40%>
Zeile 101: Zeile 104:
 und füllen sie mit folgendem Inhalt (Kommentarzeichen (''#''​) weglassen): und füllen sie mit folgendem Inhalt (Kommentarzeichen (''#''​) weglassen):
 <​code>​ <​code>​
-mail.arcor.de username:​passwort ​   #username durch Benutzername bei arcor ersetzen, passwort durch das Login-Passwort für den Account bei arcor ersetzen. +mail.arcor.de username:​passwort ​   # username durch Benutzername bei arcor ersetzen, passwort durch das Login-Passwort für den Account bei arcor ersetzen. 
-mail.arcor.de ich:​meinpasswort ​    #​Beispiel+mail.arcor.de ich:​meinpasswort ​    # Beispiel
 </​code>​ </​code>​
  
Zeile 108: Zeile 111:
 Danach führen wir diese Befehle aus: Danach führen wir diese Befehle aus:
 <code bash> <code bash>
-user@server:​~$ sudo chmod 600 /​etc/​postfix/​sasl_password ​      #​Rechte anpassen +user@server:​~$ sudo chmod 600 /​etc/​postfix/​sasl_password ​      # Rechte anpassen 
-user@server:​~$ sudo postmap /​etc/​postfix/​sasl_password ​        #In Datenbank umwandeln +user@server:​~$ sudo postmap /​etc/​postfix/​sasl_password ​        # In Datenbank umwandeln 
-user@server:​~$ sudo service postfix restart ​               #Postfix neustarten+user@server:​~$ sudo service postfix restart ​               # Postfix neustarten
 </​code>​ </​code>​
  
Zeile 119: Zeile 122:
 und in dem anderen versenden wir eine Mail: und in dem anderen versenden wir eine Mail:
 <code bash> <code bash>
-user@server:​~$ echo "​Testtext"​ | mailx -s "​Testbetreff" ​ Empfänger@provider.de ​  #​Empfänger darf nicht lokal sein! (also nicht: ich@localhost) +user@server:​~$ echo "​Testtext"​ | mailx -s "​Testbetreff" ​ Empfänger@provider.de ​  # Empfänger darf nicht lokal sein! (also nicht: ich@localhost) 
-user@server:​~$ echo "hallo wie gehts?"​ | mailx -s "​hallo" ​ herbert.gerhardt@gmail.com ​       #Beispiel+user@server:​~$ echo "hallo wie gehts?"​ | mailx -s "​hallo" ​ herbert.gerhardt@gmail.com ​       # Beispiel
 </​code>​ </​code>​
  
Zeile 143: Zeile 146:
 und fügen folgendes ein: und fügen folgendes ein:
 <​code>​ <​code>​
-www-data noreply@dynDNS ​  #nun hat www-data nicht mehr den Absender www-data sonder noreply, dynDNS sollte durch die eigene dynamische DNS ersetzt werden. +www-data noreply@dynDNS ​  # nun hat www-data nicht mehr den Absender www-data sonder noreply, dynDNS sollte durch die eigene dynamische DNS ersetzt werden. 
-user1 user2@dynDNS ​       #hier verschickt user1 unter dem Absender von user2 +user1 user2@dynDNS ​       # hier verschickt user1 unter dem Absender von user2 
-user3 user2@gmail.com ​    #und hier user3 unter seiner/​einer gmail Adresse+user3 user2@gmail.com ​    # und hier user3 unter seiner/​einer gmail Adresse
 </​code>​ </​code>​
 Nun führt man noch folgende Befehle aus: Nun führt man noch folgende Befehle aus:
Zeile 159: Zeile 162:
 <code bash>​user@server:​~$ sudo nano /​etc/​aliases</​code>​ <code bash>​user@server:​~$ sudo nano /​etc/​aliases</​code>​
 der Inhalt wird folgendermaßen festgelegt: der Inhalt wird folgendermaßen festgelegt:
-<​code>​postmaster:​ root                #mail, die an postmaster gerichtet ist, wird an root weitergeleitet</​code>​+<​code>​postmaster:​ root                # Mail, die an postmaster gerichtet ist, wird an root weitergeleitet</​code>​
 In dieser Art kann weiter ergänzt werden (Beispiele)(auf ":"​ achten): In dieser Art kann weiter ergänzt werden (Beispiele)(auf ":"​ achten):
 <​code>​ <​code>​
 #interne weiterleitung:​ #interne weiterleitung:​
-webmaster: root       #mail, die an webmaster gerichtet ist, geht an root +webmaster: root       # ​Mail, die an webmaster gerichtet ist, geht an root 
-www-data: root        #mail, die an www-data soll, kommt bei root an +www-data: root        # Mail, die an www-data soll, kommt bei root an 
-root: user1           #mail, die für root bestimmt ist, geht an user1+root: user1           # ​Mail, die für root bestimmt ist, geht an user1
 #externe weiterleitung:​ #externe weiterleitung:​
-user2: user2@gmail ​   #mail für user2 wird an seine gmail-adresse geschickt+user2: user2@gmail ​   # Mail für user2 wird an seine gmail-adresse geschickt
 #"​nicks"​ #"​nicks"​
-coolz: user3          #user3 ist nun unter coolz@dynDNS erreichbar +coolz: user3          # user3 ist nun unter coolz@dynDNS erreichbar 
-icke: user4           #und user4 hat noch seine alias icke, so lassen sich extra mailboxen für jeden seiner Nicknamen einsparen, durch Anlegen eines Alias+icke: user4           # und user4 hat noch seine alias icke, so lassen sich extra mailboxen für jeden seiner Nicknamen einsparen, durch Anlegen eines Alias
 </​code>​ </​code>​
 Nach erfolgreicher Änderung sind noch folgende Befehle nötig: Nach erfolgreicher Änderung sind noch folgende Befehle nötig:
 <code bash> <code bash>
-user@server:​~$ sudo newaliases ​                   #aliase ​übernehmen +user@server:​~$ sudo newaliases ​                   # Aliase ​übernehmen 
-user@server:​~$ sudo service postfix restart ​  #​postfix neustartem+user@server:​~$ sudo service postfix restart ​  # postfix neustartem
 </​code>​ </​code>​
  
Zeile 219: Zeile 222:
 Folgende Pakete werden benötigt Folgende Pakete werden benötigt
 <​code>​ <​code>​
-dovecot-common ​      #​dovecot +dovecot-common ​      # dovecot 
-dovecot-postfix ​     #​Integration in postfix (in Debian nicht enthalten) +dovecot-postfix ​     # Integration in postfix (in Debian nicht enthalten) 
-dovecot-imapd ​       #​Unterstützung für IMAP +dovecot-imapd ​       # Unterstützung für IMAP 
-dovecot-pop3d ​       #​Unterstützung für POP3 +dovecot-pop3d ​       # Unterstützung für POP3 
-dovecot-sieve ​       #​Unterstützung für Sieve (erst ab Wheezy bzw. Precise (12.04 LTS) nötig!)+dovecot-sieve ​       # Unterstützung für Sieve (erst ab Wheezy bzw. Precise (12.04 LTS) nötig!)
 </​code>​ </​code>​
 === Ubuntu === === Ubuntu ===
Zeile 233: Zeile 236:
 Dieses Paket ändert den ''​mailbox_command''​ in Postfix. Darüber hinaus werden bestimmte Paramter, die in ''/​etc/​dovecot/​dovecot.conf''​ gesetzt werden durch Konfigurationsdateien in ''/​etc/​dovecot/​conf.d/''​ überschrieben. Im Normalfall ist dies nicht tragisch, sondern sogar erwünscht. Bei besonderen Konfigurationen kann dies jedoch der Grund eines Fehlverhaltens sein. Wenn Konfigurationsparameter nicht übernommen werden, sollte man zuerst einen Blick in folgende Dateien werfen (falls jene existieren):​ Dieses Paket ändert den ''​mailbox_command''​ in Postfix. Darüber hinaus werden bestimmte Paramter, die in ''/​etc/​dovecot/​dovecot.conf''​ gesetzt werden durch Konfigurationsdateien in ''/​etc/​dovecot/​conf.d/''​ überschrieben. Im Normalfall ist dies nicht tragisch, sondern sogar erwünscht. Bei besonderen Konfigurationen kann dies jedoch der Grund eines Fehlverhaltens sein. Wenn Konfigurationsparameter nicht übernommen werden, sollte man zuerst einen Blick in folgende Dateien werfen (falls jene existieren):​
 <​code>​ <​code>​
-/​etc/​dovecot/​conf.d/​01-mail-stack-delivery.conf ​    #Bis jetzt nur bei Natty entdeckt +/​etc/​dovecot/​conf.d/​01-mail-stack-delivery.conf ​    # Bis jetzt nur bei Natty entdeckt 
-/​etc/​dovecot/​conf.d/​01-dovecot-postfix.conf ​        #Bis jetzt bei Lucid entdeckt (evtl. auch bei anderen Ubuntu-Version vorhanden??​) +/​etc/​dovecot/​conf.d/​01-dovecot-postfix.conf ​        # Bis jetzt bei Lucid entdeckt (evtl. auch bei anderen Ubuntu-Version vorhanden??​) 
-/​etc/​dovecot/​conf.d/​* ​                              #​Falls keine der oberen Dateien, das Ganze mit einer Wildcard (''​*''​) versuchen+/​etc/​dovecot/​conf.d/​* ​                              # Falls keine der oberen Dateien, das Ganze mit einer Wildcard (''​*''​) versuchen
 </​code>​ </​code>​
 === Debian === === Debian ===
Zeile 435: Zeile 438:
  
 <​code>​ <​code>​
-#wenn mbox verwendet werden soll+# wenn mbox verwendet werden soll
 mail_location = mbox:​~/​mail:​INBOX=/​var/​mail/​%u  ​ mail_location = mbox:​~/​mail:​INBOX=/​var/​mail/​%u  ​
-#bei verwendung ​von maildir:+# bei Verwendung ​von maildir:
 mail_location = maildir:​~/​Maildir  ​ mail_location = maildir:​~/​Maildir  ​
 </​code>​ </​code>​
Zeile 443: Zeile 446:
 Bei **Dovecot 2.x** in der ''/​etc/​dovecot/​conf.d/​10-mail.conf''​ den Parameter ''​mail_location''​ wie folgt setzen: Bei **Dovecot 2.x** in der ''/​etc/​dovecot/​conf.d/​10-mail.conf''​ den Parameter ''​mail_location''​ wie folgt setzen:
 <​code>​ <​code>​
-#wenn mbox verwendet werden soll+# wenn mbox verwendet werden soll
 mail_location = mbox:​~/​mail:​INBOX=/​var/​mail/​%u  ​ mail_location = mbox:​~/​mail:​INBOX=/​var/​mail/​%u  ​
-#bei verwendung von maildir:+# bei verwendung von maildir:
 mail_location = maildir:​~/​Maildir  ​ mail_location = maildir:​~/​Maildir  ​
 </​code>​ </​code>​
Zeile 466: Zeile 469:
 Dovecot lässt standardmäßig keine root-Logins zu, deshalb müssen z.B. Dockstar-Benutzer ein extra Benutzer angelegen, auf den die Mails umgeleitet werden: Dovecot lässt standardmäßig keine root-Logins zu, deshalb müssen z.B. Dockstar-Benutzer ein extra Benutzer angelegen, auf den die Mails umgeleitet werden:
 <code bash> <code bash>
-user@server:​~$ sudo adduser BENUTZER ​   #BENUTZER durch zu erstellenden Benutzer ersetzten +user@server:​~$ sudo adduser BENUTZER ​   # BENUTZER durch zu erstellenden Benutzer ersetzten 
-user@server:​~$ sudo adduser ich         #​Beispiel mit Benutzer ich+user@server:​~$ sudo adduser ich         # Beispiel mit Benutzer ich
 </​code>​ </​code>​
  
Zeile 474: Zeile 477:
 und fügt am Ende der Datei folgendes ein und fügt am Ende der Datei folgendes ein
 <​code>​ <​code>​
-root: BENUTZER ​          #​BENUTZER durch denn erstellten Benutzer ersetzten +root: BENUTZER ​          # BENUTZER durch denn erstellten Benutzer ersetzten 
-root: ich                #Beispiel mit Benutzer ich+root: ich                # Beispiel mit Benutzer ich
 </​code>​ </​code>​
 danach ladet man die Aliase neu und startet Postfix neu: danach ladet man die Aliase neu und startet Postfix neu:
Zeile 510: Zeile 513:
 Anschließend folgt das Skript: Anschließend folgt das Skript:
 <​code>​ <​code>​
-if header :contains "​from"​ ["​amazon.de",​ "​amazon.com"​] { fileinto "​INBOX.amazon";​ }                                  #wenn der Header der E-Mail als Absender "​amazon.de"​ oder "​amazon.com"​ enthällt landet sie im Posteingang im Ordner "​amazon"​ +if header :contains "​from"​ ["​amazon.de",​ "​amazon.com"​] { fileinto "​INBOX.amazon";​ }                                  # wenn der Header der E-Mail als Absender "​amazon.de"​ oder "​amazon.com"​ enthällt landet sie im Posteingang im Ordner "​amazon"​ 
-elsif header :is "​subject"​ "​weekly newsletter"​ { fileinto "​INBOX.newsletter.weekly-newsletter";​ }                    #wenn der Header als Betreff "​weekly newsletter"​ genau enthällt wird er nach "​INBOX.newsletter.weekly-newsletter"​ verschoben+elsif header :is "​subject"​ "​weekly newsletter"​ { fileinto "​INBOX.newsletter.weekly-newsletter";​ }                    # wenn der Header als Betreff "​weekly newsletter"​ genau enthällt wird er nach "​INBOX.newsletter.weekly-newsletter"​ verschoben
 elsif allof (header :contains "​from"​ "​neu@web.de",​ header :contains "​subject"​ "​news"​) { fileinto "​INBOX.sinnlos";​ }  # wenn der Header also Absender "​neu@web.de"​ und Betreff "​news"​ enthällt, wird er nach "​INBOX.sinnlos"​ verschoben. elsif allof (header :contains "​from"​ "​neu@web.de",​ header :contains "​subject"​ "​news"​) { fileinto "​INBOX.sinnlos";​ }  # wenn der Header also Absender "​neu@web.de"​ und Betreff "​news"​ enthällt, wird er nach "​INBOX.sinnlos"​ verschoben.
-else { fileinto "​INBOX";​ }                                                                                           #​alles andere landet im Posteingang (INBOX)+else { fileinto "​INBOX";​ }                                                                                           # alles andere landet im Posteingang (INBOX)
 </​code>​ </​code>​
  
 Nochmal zum Aufbau: Nochmal zum Aufbau:
 <​code>​ <​code>​
-if      #startet mit "​if"​ +if      # startet mit "​if"​ 
-elsif   #​ansonsten,​ wenn...+elsif   # ansonsten, wenn...
 elsif elsif
 elsif elsif
-(..)    #noch mehr "​elsif"​ (so viele du brauchst)+(..)    # noch mehr "​elsif"​ (so viele du brauchst)
 elsif elsif
-else    #der Rest, auf den keine der Kriterien zutreffen steht am Schluss mit "​else"​+else    # der Rest, auf den keine der Kriterien zutreffen steht am Schluss mit "​else"​
 </​code>​ </​code>​
 \\ \\
Zeile 570: Zeile 573:
 <​code>​ <​code>​
 ## Allgemeine Einstellungen ## Allgemeine Einstellungen
-set postmaster "​richard" ​     #postmaster eintragen; hier: richard+set postmaster "​richard" ​     # postmaster eintragen; hier: richard
 set bouncemail set bouncemail
 set no spambounce set no spambounce
 set properties ""​ set properties ""​
 set syslog set syslog
-set daemon 300                #alle wie viel Sekunden solle Fetchmail ausgeführt werden.+set daemon 300                # alle wie viel Sekunden solle Fetchmail ausgeführt werden.
  
  
Zeile 583: Zeile 586:
  
 ## Beispiel: ​ ## Beispiel: ​
-#hier holt der Systembenutzer richard seine Mails per POP3 von web.de mit seinem Nutzernamen richard@web.de +# hier holt der Systembenutzer richard seine Mails per POP3 von web.de mit seinem Nutzernamen richard@web.de 
-#sein Passwort bei web.de ist "​sagichnicht"​ +# sein Passwort bei web.de ist "​sagichnicht"​ 
-#die Mails werden auf dem Server nicht gelöscht (keep) und verschlüsselt abgerufen (ssl) +# die Mails werden auf dem Server nicht gelöscht (keep) und verschlüsselt abgerufen (ssl) 
-#er setzt interval3, so dass fetchmail nur alle 3 Mal Ausführen seine Mails holt (web.de freemail Nutzer können nur alle 15 Minuten E-Mails abholen)+# er setzt interval3, so dass fetchmail nur alle 3 Mal Ausführen seine Mails holt (web.de freemail Nutzer können nur alle 15 Minuten E-Mails abholen)
 poll pop3.web.de with proto POP3 interval 3 poll pop3.web.de with proto POP3 interval 3
        user '​richard@web.de'​ there with password '​sagichnicht'​ is '​richard'​ here options keep ssl        user '​richard@web.de'​ there with password '​sagichnicht'​ is '​richard'​ here options keep ssl
Zeile 592: Zeile 595:
  
 ## anderes Beispiel: ## anderes Beispiel:
-#Der Systembenutzer herbert holt seine Mails vom IMAP-Server von Googlemail. +# Der Systembenutzer herbert holt seine Mails vom IMAP-Server von Googlemail. 
-#dort hat er den Nutzernamen "​herbert.seigel",​ mit seinem Passwort "​bekommstdunicht"​ +# dort hat er den Nutzernamen "​herbert.seigel",​ mit seinem Passwort "​bekommstdunicht"​ 
-#anders als richard löscht fetchmail die gerade eben abgeholten E-Mails ("​keep"​ fehlt) +# anders als richard löscht fetchmail die gerade eben abgeholten E-Mails ("​keep"​ fehlt) 
-#auch er lädt seine Mails verschlüsselt ("​ssl"​)+# auch er lädt seine Mails verschlüsselt ("​ssl"​)
 poll imap.googlemail.com with proto IMAP  poll imap.googlemail.com with proto IMAP 
        user "​herbert.seigel@googlemail.com"​ there with password "​bekommstdunicht"​ is "​herbert"​ here ssl        user "​herbert.seigel@googlemail.com"​ there with password "​bekommstdunicht"​ is "​herbert"​ here ssl
Zeile 887: Zeile 890:
  
 ---- ----
- --- //[[chrisge@mein.homelinux.com|chrisge]] ​2013/12/09 21:10//+ --- //[[cw@chrisge.org|chrisge]] ​2018/05/26 01:34//