Mailserver mit SuSE Linux
getestet unter: SuSE 7.1

Folgende Software sollte auf dem Linux-Rechner installiert sein:

  • sendmail (serie n1: sendmail.rpm) : zum Versenden und Empfangen von Emails
  • fetchmail (serie n1: fetchmail.rpm) : zum Abholen der E-Mails vom eigenen Providers via POP/IMAP
  • qpopper (serie n2: qpopper.rpm) oder cucipop (clicke hier): zum Abrufen der Emails über das POP3-Protokoll
  • procmail (serie n: procmail.rpm): zum Weiterleiten der Mails 
  • vacation  (serie n: vacation.rpm) : automatische Benachrichtigung  für erfolgreich gesandter Mails an den Versender

 

1. Sendmail zum Versenden und Empfangen der Emails:

Zum Senden von Emails (über das SMTP Protokoll) brauchen wir das Programm Sendmail (MTA =Mail-Transport-Agenten).
Will man auch über seine eigene IP, DynamicIP-Provider oder über ein MX-Record Emails empfangen eignet sich Sendmail ebenfalls dazu.
Wer Sendmail konfigurieren will kann entweder die Datei "/etc/sendmail.cf" editieren oder das Ganze bei SuSE  mit YaST. SuSE hat uns das Leben
hier stark vereinfacht, indem es ein vorkonfiguriertes Sendmail liefert und die wichtigsten Einstellungen in eine einfache Konfigurationsdatei zusamengefaßt hat.
Yast ->Administration des Systems ->Netzwerk konfigurieren ->Sendmail konfigurieren -> entsprechende Konfiguration auswählen

Hier ein Beispiel für Experten Modus:
Domainname für lokale Zustellung: localhost
Host für ausgehende eMail: mail.isis.de (oder so)
Host für alle eMail: (leer)
Mail nur in die Queue stellen: [X]
Kein canonify der Hostnamen:[ ]
Sendmail als smtp Daemon starten: [X]
Kommandozeilenparameter für Sendmail: -bd -om
In Genericstable änderbare Domains: (leer)
# Startparameter
# -bd : als Dämon starten
# -om : Emails an sich selber erlaubt
#SENDMAIL_ARGS = -bd -om

So, das war's mit YaST. Jetzt sollte man als nächstes noch die Zugriffsberechtigung für sein lokales Netz festlegen.
Dies geschieht in der Datei /etc/mail/access. Dort trägt man die IP-Bereiche/Adressen ein, die Zugriff auf den
Email-Server haben sollen. 

#/etc/mail/access 
127      RELAY
192.168  RELAY

Um Sendmail mit Authentifizierung SMTP AUTH zu betreiben bitte hier lesen oder bei SuSE7.1 folgendes beachten
(kann sein, dass dies bei neueren SuSE-Versionen nicht mehr nötig ist):

1.sendmail.rpm durch sendmail-tls.rpm ersetzen und cyrus-sasl.rpm zusätzlich installieren

2.usr/lib/sasl/Sendmail.conf  bzw. /usr/local/lib/sasl/Sendmail.conf mit folgender Zeile erstellen :
pwcheck_method: pam 

3.in /etc/sendmail.cf unter "local-info" folgendes eingegeben: 
C{TrustAuthMech}LOGIN PLAIN
O AuthMechanisms=LOGIN PLAIN 
4. rcsendmail restart
Nun kann SMTP_AUTH verwenden werden. Dazu muß im Mailprogramm noch die Authentifizierung beim Mailversand aktiviert werden.

Teste nun ob Sendmail SMTP_AUTH "versteht":
# telnet amd 25
Connected to amd.
Escape character is '^]'
220 MX ESMTP Mailserver; Sun, 12 May 2002 15:02:25 +0200
ehlo amd
250-amd.all Hello amd.all [192.168.1.2], pleased to meet you
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-SIZE
250-DSN
250-ONEX
250-ETRN
250-XUSR
250-AUTH LOGIN PLAIN
250 HELP

Falls SMTP_AUTH nicht funktioniert bitte das Paket  cyrus-sasl-1.5.5.tar.gz herunterladen und wie folgt kompilieren: 
# ./configure --enable-login 
# make
# make install

Um mit der eigene IP Emails empfangen zu können, muss /etc/mail/sendmail.cw bearbeitet werden.
In dieser Datei werden nun Zeile für Zeile alle Rechnernamen eingetragen:

localhost
amd.local
mailserver.myip.org
grazy.dyndns.org
gohere.yi.org

2. fetchmail Abholen der E-Mails vom eigenen Providers:

Lege die Datei /root/.fetchmailrc an und trage für jedes abzufragende Mailkonto bei den Providern jeweils eine Zeile ein:

poll pop.gmx.net protocol POP3 user tatjana@gmx.net password deinpasswort is tatjana

Hinter "user" steht der Anmeldename und das Passwort für den Mailserver im Internet.
Hinter "is" steht der Username im Linux System, in dessen Mailpostfach die abgeholten Mails abgelegt werden sollen.
Bitte beachte, dass T-Online Emails nur über eine T-Online Internetverbindung abgerufen werden können.
Und da gibt es noch ein Extrabonbon bei T-Online: Name und Passwort sind egal, dürfen aber nicht weggelassen werden.
Übrigens muss der Username hinter user in Anführungsstriche (") eingeschlossen werden, wenn er mit einer Ziffer beginnt.

Bedenke auch dass die Rechteverteilung für die Datei "fetchmailrc" so aussehen muss 
*.fetchmailrc -rwx--x---

So, nun können mit dem Aufruf fetchmail die Mails abgeholt werden oder regelmäßig über cron abrufen lassen.


3a) qpopper -
POP3 Mail-Daemon 

Sobald die Emails von "fetchmail" abgeholt sind werden sie üblicherweise durch das Programm "procmail" in die Postfächer der lokalen User auf dem Server gelegt.
Die Mails liegen also jetzt auf dem Server und können von den Clients (z.B. Outlookexpress) entweder durch das POP3- oder IMAP-Protokoll abgeholt werden.
Dazu benötigt wird z.B. "qpopper", welcher über die inetd gestartet wird.
"qpopper" ist ein Programm zum Einrichten eines Mailservers mit POP3 Protokol. Der Daemon unterstützt auch das sicherere APOP Protokol. 
Nach dem Installieren muß der Server in der Datei /etc/inetd.conf aktiviert werden.
Folgender Eintrag sollte in der Datei /etc/inetd.conf vorhanden sein:
pop3   stream   tcp     nowait       root     /usr/sbin/tcpd      /usr/sbin/popper -s

Nachdem man in der Datei etwas geändert hat sollte man das Netzwerk anhalten und wieder neu starten.
Damit die Änderungen wirksam werden. Am einfachsten den Runlevel wechseln oder den inetd neu starten.
Wenn man sich nicht sicher ist geht es auch mit 'shutdown -r now'.


3b) cucipop -
POP3 Mail-Daemon 

Mit einem System auf dem Quotas gestzt sind hat qpopper so seine Probleme, nämlich sobald die Hälfte des Freespaces belegt ist,
kann man keine Mails mehr abholen. Das Problem liegt darin, dass qpopper eine temporäre Datei in /var/spool/mail erzeugt, die quasi eine Kopie des Postfachs ist.
Wenn die Datei größer als die Hälfte des erlaubten Speichers ist, kann die temporäre Datei nicht mehr erzeugt werden.

Es bleiben einem 2 Möglichkeiten dieses Problem zu lösen. Entweder man compiliert qpopper mit den bestimmten Optionen neu  oder man verwendet cucipop.
Man kann cucipop über die inetd oder als standalone (default) laufen lassen evtl. muss die /etc/pam.d/cucipop angepasst werden.


4. procmail
zum Weiterleiten der Mails auf einen anderen Useraccount:

a) Entweder in /etc/aliases bzw. /etc/mail/aliases das Wort joe mit einem Benutzeraccount ersetzen.

# It is probably best to not work as user root and redirect all
# email to "root" to another account. Then you don't have to check
# for important email too often on the root account.
# The "\root" will make sure that email is also delivered to the
# root-account, but also forwared to the user "joe".
root: joe, \root

Dann mit #newaliases die Datenbank aktualisieren.

b) Einfacher (und von jedem Benutzer selbst) durchführbar ist eine Umleitung mittels ~/.procmailrc.

touch /root/.procmailrc:
dann editieren:
LOGFILE=/var/log/procmail.log
#LOGABSTRACT=yes
# forward mail to root to lt
:0:
/var/spool/mail/USERACCOUNT
#:0c: würde die Mail kopieren.
c) oder so
# Diese .procmailrc leitet Mail an einen anderen User weiter
LOGFILE=/var/log/procmail.log
ZIELUSER="USERACCOUNT@amd.all"
:0 c:
* !^X-Loop: Mailweiterleitung
| formail -A "X-Loop: Mailweiterleitung" | $SENDMAIL -oi ${ZIELUSER}
Nun muss noch in ~/.forward folgendes stehen
|/usr/bin/procmail

d) Weiterleitung an eine andere Mailserveradresse z.B. gmx.de:

Will man seine Mails an eine anderen Mailserveraccount weiterleiten, geht das so:
Erstelle in deiner Homedirectory ein .forward File und füge die Mailadresse hinzu auf welcher die Mail weitergeleitet werden soll.
(bitte die Anführungszeichen " nicht vergessen und am besten mit deinem Useraccount .forward erstellen)

Nun muss noch in ~/.forward folgendes stehen
"deineMAIL@gmx.de"
Die Rechteverteilung für die Datei " .forward" sollte dann in etwa so aussehen:
-rwx------    1 termito    root           17 2002-10-18 18:43 .forward


5. vacation
- automatische Benachrichtigung  für erfolgreich gesandter Mails an den Versender

Im jeweiligen Verzeichnis der User befindet sich nachdem man sich als Benutzer einloggd (nicht als root!)
und den Befehl /usr/bin/vacation ausführt, die Datei .forward. Will man auch die automatische Benachrichtigung für ein alias,
so sollte man folgendes ergänzen (`termito` ist Username `admin` ist alias)

Nun muss noch in ~/.forward folgendes stehen
\termito, "|/usr/bin/vacation -a admin termito"
nach dem Speichern folgendes eingeben:
#vacation -I
Falls man unter der root$ vacation als Benutzer termito starten möchte, gibt man folgendes ein:

#su -c "vacation -I" termito


6. OutlookExpress (MUA - Mail_User_Agent) Konfiguration:

outlookexpress.jpg

So das war's auch schon, jetzt lassen sich die Mails mit den Clients vom Linux Server versenden und abholen.
Wer noch mehr bzw. z.T. genauere Details zu Mailserverkonfiguration (sendmail) haben möchte, kann sich die PDF-Datei (408 KB) downloaden.

 

 

Sunday, 21-Sep-2003 12:16:33 EDT