Re: [maillist] Sendmail Problem??

Sascha Doerner (sdoerner@topmail.de)
Sun, 5 Sep 1999 01:58:28 +0200

Am Sam, 04 Sep 1999 war folgendes Deine Meinung:
> hallo,
>=20
> wie konfiguriert man sendmail? Es gibt nicht mal ne vernuenftige man pa=
ge!! bei
> sendmail.org hab ich auch nichts entdeckt?!?!

Tja.....tja........das ist nicht ganz so einfach wie Schuhe zubinden aber
machbar. :-)

Wir haben es hier seit 1 Woche am laufen und uns dabei einige N=E4chte um=
die
Ohren gehauen......aber es l=E4uft.

Ich habe Dir mal unten einen kleine Beschreibung angeh=E4ngt, mit welcher=
Du in
der Lage sein solltest Mails zu versenden.

Bei Fragen einfach noch mal bellen.

Los geht=B4s

# Instllationsanleitung f=FCr Sendmail 8.9.3 als Mailserver mit Interneta=
nbindung

# --- Die Beschreibung bezieht sich auf DLD 6.x in Verbindung mit dem
Konfigurationstool VIPER
=20
# --- Vorbereitungen

Damit ein solcher Mailserver =FCberhaupt funktionieren kann, m=FCssen=
folgende
Packete installiert sein:
=20
1.=09inetd=09=09=09Internet-Dients-D=E4mon
2.=09imap=09=09=09f=FCr pop3-Anfragen der Clients
3.=09ppp=09=09=09F=FCr die Verbindung zum Provider
4.=09modem oder isdn=09=09ohne ist der Provider rel.=20
schwierig zu erreichen... :-)
5.=09sendmail=09=09Mailverteiler lokal und zum Provider
6.=09fetchmail=09=09holt Mails vom Provider ab und=20
=FCbergibt sie an Sendmail
=20
# --- Installation der Pakete und PPP-Ger=E4te

1.=09Anmeldung als Superuser
2.=09X starten
3.=09Mit Hilfe von Viper die oben aufgelisteten Packete installieren
4.=09Mit dldadmin ein oder Modem oder ISDN konfigurieren
5.=09Mit dldadmin PPP f=FCr den Internet-Provider konfigurieren
=20
# --- Sendmail konfigurieren

# --- Sendmail-Macro erstellen

Ein einfaches Macro f=FCr den Mailserver "mail.my-domain.com"=20
sieht z.B. so aus:
---------------------------------------------------------------------=
-
divert(-1)
#
# Mein kleines Sendmail-Macro
#
divert(0)
include(`../m4/cf.m4=B4)
VERSIONID(`@(#)mail.my-domain.com=09=091.0 (Macro-Author)=B4)
OSTYPE(linux)
DOMAIN(generic)
FEATURE(masquerade_envelop)
FEATURE(allmasquerade)
FEATURE(redirect)
FEATURE(always_add_domain)
FEATURE(accept_unresolvable_domains)
MASQUERADE_AS(my-domain.com)
FEATURE(relay_entire_domain)
FEATURE(local_procmail)
define(`MAIL_HUB=B4,smtp-mailserver-des-providers)
FEATURE(bestmx_is_local,my-domain.com)
MAILER(local)
MAILER(procmail)
MAILER(smtp)
--------------------------------------------------------------------
=20
"my-domain.com"=09=09mu=DF durch die lokale Dom=E4ne ersetzt werden.
=20
"smtp-server-des-providers"=09mu=DF durch den echten Namen des Mailse=
rvers
=09=09=09=09des Internet-Providers ersetzt werden.
=09=09=09=09
"masquerade_envelop",
"allmasquerade",=09=09legt fest, das anstelle des Rechnernamens
=09=09=09=09im Absenderteil des Mailheaders die mit
=09=09=09=09MASQUERADE_AS() angegebene Dom=E4ne erscheint.

"accept_unresolvable_domains" Bewirkt, da=DF auch Mails, die von eine=
m
=09=09=09=09Absender au=DFerhalb aller bekannten Dom=E4nen
=09=09=09=09stammen akteptiert werden. Wichtig, wenn
=09=09=09=09die Dom=E4ne der eigenen Email-Adresse keiner
=09=09=09=09lokal bekannten Dom=E4ne entspricht. Ohne diese
=09=09=09=09Angabe w=E4re dann kein Mailversand m=F6glich.
=09=09=09=09
"relay_entire_domain"=09Hiermit wird der lokale Mailserver angeweisen
=09=09=09=09vonn allen Rechnern der eigenen Dom=E4ne Mails
=09=09=09=09anzunehmen, die nicht f=FCr die lokale Dom=E4ne
=09=09=09=09bestimmt sind, also ins Internet geschickt
=09=09=09=09werden sollen.
=09=09=09=09
"bestmx_is_local"=09=09Bewirkt, da=DF sendmail vor dem Mailversand
=09=09=09=09pr=FCft, ob eine Mail f=FCr einen lokalen Empf=E4nger
=09=09=09=09bestimmt ist. Ist das der Fall, wird die Mail
=09=09=09=09im lokalen Postfach des Empf=E4ngers abgelegt
=09=09=09=09und nicht an den Provider =FCbermittelt.
=09=09=09=09
"MAIL_HUB"=09=09=09Bestimmt den Namen des SMTP-Mailservers
=09=09=09=09beim Provider. Alle Mails, die nicht lokal
=09=09=09=09zugestellt werden k=F6nnen, werden an diesen
=09=09=09=09Mailserver gesendet.
=09=09=09=09
---------------------------------------------------------------------=

---
   =20
    # --- sendmail.cf erzeugen und korregieren

Ganz einfach aus dem Verzeichnis /usr/src/sendmial-8.9.3/cf/cf heraus folgenden Befehel eingeben: =20 =09m4 sendmail.mc > sendmail.cf =09 Anschlie=DFend sendmail.cf nach /etc/sendmail.cf kopieren. =20 In sendmail.cf sollte noch ein Eintrag erg=E4nzt werden: =20 #CL root =20 Der Kommentar sollte entfernt und die Liste der lokalen Mailempf=E4ng= er angeh=E4ngt werden =20 Bsp: =20 CL root sven daniel volker markus tom ...u.s.w...

Die Nachfolgende Zeile =20 CM root=20 =20 sollte auskommentiert werden. -> #CM =20 Damit ist die Konfiguration von sendmail schon beendet. =20 =20 # --- Fetchmail konfigurieren

Neuerdings gibt es ein n=FCtzliches Konfigurations-Tool f=FCr Fetchma= il =20 "fetchmailconf" wird unter X ausgef=FChrt und erzeugt /root/.fetchmai= lrc =20 Dort werden alle Mailserver alle Email-Provider eingetragen, alle lokalen Mailempf=E4nger und deren Account-Daten f=FCr den entsprechen= den Mail-Provider. =20 # --- Mailaustausch mit dem Provider

Ein kleinen Script (mailexchange) automatisiert den Mailaustausch. ---------------------------------------------------- #!/bin/bash /etc/ppp/./ppp-on sleep 45 sendmail -q fetchmail > /var/log/fetchmail_log /etc/ppp/./ppp-off ---------------------------------------------------- Damit ppp-on auf diese Weise funktioniert, m=FCssen wir daran eine kleine Manipulation vornehmen. =20 In der letzten Zeile wird die Verbindung zum Provider hergestellt. Damit das im Hintergrund passiert h=E4ngen wir einfach ein "&" ans En= de der Zeile. =20 Unser kleines Script startet ppp-on, wartet 45 Sekunden bis die Verbindung zum Provider hergestellt ist, holt Mails von allen in fetchmailrc eingetragenen Mailservern und Benutzern, =FCbergibt diese an Sendmail und sendet anschlie=DFend alle lokal nicht zustellbaren M= ails an den als MAIL_HUB in sendmail.cf eingetragenen SMTP-Server. Anschlie=DFend wird die Verbindung zum Provider wieder getrennt. Damit wir nachher sehen k=F6nnen ob wir alle POP3-Server erreicht und= alle Mails bekommen haben, lassen wir eine Log-Datei schreiben. =20 /var/log/fetchmail_log enth=E4lt alle Informationen =FCber die letzt= e =09=09=09 Anfrage bei den bekannten Mail-Servern. =20 # --- Den t=E4glichen Mailaustausch automatisieren

Um zu erreichen, da=DF der Mailaustausch mit dem Internet automatisch in zu bestimmten Zeiten durchgef=FChrt wird ( zum Beispiel t=E4glich um 6.30 Uhr und 20.00 Uhr), reichen zwei Zeilen in der Datei /etc/cro= ntab =20 Format: Minute Stunde Tag-im-Monat Monat Tag-der-Woche UserID Befehl =20 Die Eintr=E4ge in crontab w=E4ren folgende =20 30 06 * * * root mailexchange 00 20 * * * root mailexchange =20 # --- Die Systemdienste

Alle Konfigurationsarbeit und Bastelei nutzt nichts, wenn Sendmail und inetd nicht als Dienst ( D=E4mon ) ausgef=FChrt werden. =20 Also: =09dldadmin starten, sendmail sowie inetd als Dienste in der =09Systemkonfiguration aktivieren und mit init 1 u. init 3 =09das System neu initialisieren.

**** Das war=B4s. Der Mailserver sollte jetzt arbeiten **** =20 # --- Zugriff der Clients

Welches Bestriebssystem der Client benutzt spielt keine Rolle. Alles was er braucht, ist ein Mailprogramm mit SMTP- und POP3- Unterst=FCtzung. Als SMTP- und POP3-Server tragen wir unseren gerade gebauten Mailserver mit unseren f=FCr diesen Rechner g=FCltige= n Benutzerdaten ein. Als Email-Adresse geben wir unsere echte Email- Adresse, die uns vom Internet-Provider zugeordnet wurde an! =20 # --- The final test

1.=09Wir schreiben von einem Client-Rechner aus eine Mail an uns selb= st, =09und zwar geben wir dabei nur unseren Vornamen an ! =09Mit der n=E4chsten Mailabfrage sollte sich diese Email bereits in =09unserem Postfach befinden, ohne da=DF der Mailserver eine Verbindung =09zum Internet hergestellt hat. Die Empf=E4ngeradresse sollte dabei =09mit der lokal Dom=E4ne erg=E4nzt worden sein, also sollte anstellt von =09(z.B.) "tomas" als Email-Empf=E4nger "tomas@my-domain.com" erscheinen =09bzw. irgendwo im Mail-Header zu finden sein. =20 2.=09Wir schreiben ein Email an unsere echte Internet-Email-Adresse. =09Diese Mail sollte jetzt im Verzeichnis /var/spool/mqueue des =09Mailservers zu finden sein, beim n=E4chten Poll-Intervall an den =09SMTP-Server unseres Email-Providers =FCbermittelt und evt. sofort =09wieder in unserem lokalen Postfach landen ( das h=E4ngt allerdings =09von der Vearbeitungszeit unseres Providers ab ).

3.=09Wir schreiben eine Email an einen anderen Benutzer des lokalen =09Netzwerkes. Diese Mail sollte ( unabh=E4ngig davon ob wir den Empf=E4n= ger =09mit oder ohne lokale Dom=E4ne angegeben haben ) sofort in dessen =09Postfach landen. =09 # --- Die Zeit nach dem Konfigurations-Stress

=09Urlaub =09Sonne =09Strand =09Party =09 =09<8->>=09 =09 =09

ru sascha