EMail - System
Postfix-Fetchmail-QPopper-UUCP

Linux
pk-applets

Mailsystem
Das Mailsystem benützt die Programme
- postfix
- fetchmail
- qpopper bzw dovecot
- uucp

Unser Mailsystem verbindet den Computerraum mit einem Postkasten von t-online@school und einem EMail-Account, der mit UUCP geleert werden muß.
Im folgenden bezeichnen wir diesen Postkasten als my.email.de
Alle EMails an irgendeinen User z.B. meier@my.email.de werden von UUCP abgeholt und sollen im Server linux landen.
Dort werden sie dem User meier -so vorhanden- zugewiesen.
Die EMail-Adresse bei t-online nennen wir myGym@t-online.de
 

Konfiguration von uucp


 

Für jeden User werden die Mails in Dateien gespeichert, die in /var/spool/mail/ liegen. Sie können mit jedem Texteditor betrachtet werden. Zu Testzwecken sollte man dies tun. Ebenso können sie dort von root gelöscht werden.

qpopper
qpopper ist der pop3-Server, der die Mails vom Linux-Server auf Anforderung zu den Clients leitet.
Benutzer ohne Kennwort und root (Benutzer mit ID unter 500)  werden von qpopper nicht akzeptiert.
Deshalb erhalten die Schüler-Accounts s0, s1, s2 ... auf Linux ein gemeinsames Kennwort.
Dieses Kennwort muß im EMail-Programm beim Abholen der Mail vom pop3-Server ( hier linux )
oder beim Anlegen des Kontos eingegeben werden.
Für qpopper muß auf Linux der xinet-Deamon aktiviert werden.
Die Zeile pop3 stream  Programm qpopper... etc soll kein Kommentar sein!.
Ein anderer der Dienste, die im xinet-Deamon angeboten werden, ist nicht nötig.
 

dovecot
ist ein Mailserver, der variabler eingesetzt werden kann. Unser Mail-System ist ein Übungssystem ohne Ambitionen hinsichtlich Sicherheit.
Wir wollen lediglich, dass die SchülerClients untereinander Emails austauschen können.
Wir benötigen somit nur einen pop3-Server. Die Kennwörter können unverschlüsselt lagern und übermittelt werden.
Dovecot wird über mit dem Runlevel-Editor gestartet. Im Verzeichnis /etc/dovecot ist die Konfigurationsdatei dovecot.conf

dovecot.conf

#*** Protokol pop3 ***********
protocols = pop3
#*** LogFiles ****************
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot-info.log
#*** Ohne ssl , Plaintext ... etc

ssl_disable = yes
disable_plaintext_auth = no
auth_verbose = yes

pop3_uidl_format = %08Xu%08Xv
#* Authentication **************
auth default {
mechanisms = plain
passdb passwd-file {
args = /etc/dovecot/passwd
}
userdb static {
args = uid=kp gid=mail home=/var/spool/mail
}
}

/etc/dovecot/passwd

s1:{PLAIN}pupil
s2:{PLAIN}pupil
s3:{PLAIN}pupil
s4:{PLAIN}pupil
s5:{PLAIN}pupil
s6:{PLAIN}pupil

Die Client-User werden hier mit der Passwort-Datei oben identifiziert. Das Kennwort ist stets pupil.
Dovecot versucht nach erfolgreicher Authentifizierung den Zugriff auf die Mail-Datei in /var/spool/mail und zwar unter der UserID, die in der dovecot.conf angegeben ist, hier User kp
Jedoch werden diese Dateien erstmals von Postfix zunächst so angelegt, dass nur z.B. s1 darauf Zugriff hat.
Root muß dashalb bei allen Email-Dateien in /var/spool/mail Lese- und Schreibzugriff freigeben.

Einstellungen bei den Clients
z.B.: Netscape Messenger
Bearbeiten - Einstellungen - Mail&Diskussionsforn
Idendität :
    Name  : sX  X=0,1,2,...
    EMail :  sX@my.email.de
Server für Eingehende Mail
Hier bei Server Hinzufügen oder Bearbeiten
    linux bzw 192.168.2.20
    pop3-Server
Mail für ausgehende Mail
    linux bzw 192.168.2.20

Nach diesen Einstellungen kann bereits ein erster Test erfolgen. Rufe die EMail von den Clients aus ab, d.h. das, was z.B. in der Datei /var/spool/mail/sX steht. Netscape Messenger fordert das Kennwort von sX l. Der pop3-Server-Dienst sollte sich melden und die Verbindung bestätigen. E-Mails wird es wohl noch nicht geben.
 

Postfix

benötigt kaum Einstellungen. Man prüfe in /etc/postfix/main.cf die Daten, die für internen EMail-Verkehr wichtig sind:

main.cf auf linux

myhostname=linux.ag2.de
mydomain=linux.ag2.de, my.email.de
myorigin=$myhostname
mydestination=$myhostname, localhost.$mydomain, $mydomain, my.email.de
relayhost = 192.168.0.20

Wichtig ist der Eintrag my.email.de, sonst fühlt sich postfix auf linux nicht für die Mails zuständig, die uucp anbringt!
Mails der SchülerClients, die weder an linux.ag2.de noch an my.email.de werden dem relayhost, also der IAU übergeben
 

main.cf auf der IAU

myhostname=iau.ag2.de
mydomain=iau.ag2.de
myorigin=$myhostname
mydestination=$myhostname, localhost.$mydomain, $mydomain, my.email.de
relayhost = mailto.t-online.de

Auf beiden Rechnern werden in der main.cf die Einträge
inet_interfaces und smtpd_recipient_restictions auskommentiert.
Der smtp-Deamon ist nach außen durch die Firewall abgesichert!

Dann sollte das Mailen innerhalb schon richtig funktionieren! Sende von einem Client z.B. comp1  an s3@linux.ag2.de
Prüfe am Server mit Texteditor die Datei /var/spool/mail/s3. Rufe die Post bei comp3 ab!

Fehlersuche:
Prüfe die log-Datei  /var/log/mail !!
Prüfe die Postfix-Einstellungen durch das Kommando postconf

In der main.cf verhindert
defer_transports = smtp
zunächst den Tranport. Der Befehl (evt in der crontab ) sendmail -q erzwingt dann den Transport der EMails
 

Umleiten von Mails - aliases

In die Datei /etc/aliases wird eingefügt

root:      private.EMail@irgendein.provider.de
alle:       :include:/etc/mailliste

Die ersten Einträge dienen der Umleitung von Fehlermeldungen an root.!

mailliste ist eine (Unix-)Textdatei der Form

#**** Liste aller Empfänger, die unter alle@linux.ag1 ******
#**** angesprochen werden können ******************
  s0, s1,s2, ... etc,
  s8,s9,... etc,
  s35,s36,s37,
#**** letztes Komma nicht vergessen *****************

Ein EMail an alle@linux.ag2.de erhalten so alle Empfänger der Liste.
aliases ist nur eine Textdatei.
Durch den Befehl newaliases wird die Datenbank aliases.db aktualisiert!
Und ein Neustart von postfix mit dem Befehl
/etc/init.de/postfix restart
Sonst geht's nicht.
 

Postfix-Kommandos
postcat zeigt in der aktuellen Postfix-Version den Inhalt der Queues an

postconf zeigt die in der Datei main.cf gesetzten Werte an.

postalias ist für die Mail-Aliases zuständig. Standart-Einstellung ist aber die Datei /etc/aliases (Siehe oben!)
 

Fetchmail

holt die Post vom Provider, hier von myGym.@t-online.de.
Im Home-Vezeichnis ist die Datei .fetchmailrc anzulegen, die fetchmail mitteilt,
wo die Post abzuholen ist:
 
 

#Datei .fetchmailrc ******************************
#********************************************
poll pop.t-online.de
protocol pop3
user myGym
password "xyz"
to s0@linux.ag2.de

Dieses Beispiel leert das Konto bei t-online.de

Natürlich ist die Datei .fetchmailrc nichts für jedermann, denn sie enthält das password "xyz".
Deshalb die Rechte einstellen mit:
chmod 600    .fetchmailrc
chown root   .fetchmailrc

Auf der Konsole kann man nun als User root  nun die Post abholen
Befehl  fetchmail -a -v -k -t 300
-a  alles abholen
-v  Kommentar, damit man am Bildschirm was sieht!
-k  keep - löscht die Mails nicht, damit man mehrmals darf!
-t 300  Timeout 300s = 5min. Falls der Verbindungsaufbau länger dauert.

Weiterleiten der Post

Dazu erhält die Datei transport in /etc/postfix auf der IAU die Einträge
linux.ag2.de smtp:192.168.0.18
my.email.de  smtp:192.168.0.18

Mit dem Befehl
postmap /etc/postfix/transport
wird die Datenbank  /etc/postfix/transport.db erstellt und bei erneutem Start von Postfix eingelesen und beachtet.

Jetzt werden die Mails an s0@linux.ag2.de , die fetchmail abholt, an postfix auf Linux weitergeleitet.
Alle Mails, die von UUCP abgeholt werden, gehen dengleichen Weg, denn diese haben my.email.de als Empfänger-Adresse.

Zu den t-online Servern
pop.t-online.de und mailto.t-online.de
Diese Server sind für Privat-Anwender. Für ein Schulnetz ergeben sich folgende Nachteile
Umfang und Zahl der EMail sind beschränkt.
Jede Mail erhält als Absender-Adresse myGym@t-online.de
Mails, die nicht zugestellt werden können, landen also in unserer Konfiguration bei s0!

Zu den Beschränkungen von Diedrich Ehlerding