Home / LinuxUser / 2001 / 07 / schnörkellos und schnell: exim

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Eingedost
(161 Punkte bei 4 Stimmen)
Aufteiler
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

schnörkellos und schnell: exim

Letzte Hürden

Ein weiteres Hindernis könnte das Fehlen des Systemtools /sbin/chkconfig sein, das die symbolischen Links in /etc/rc.d bearbeitet, und das es u. a. in der Distribution SuSE 7.0 gar nicht gibt. Ein Installationsversuch wird dann mit einer Fehlermeldung abgebrochen:

* Fehler: fehlgeschlagene Paket-Abhängigkeiten:
 *         /sbin/chkconfig wird von exim-3.20-4 gebraucht

Hier hilft Ihnen ebenfalls die Option --nodeps, mit der Sie ein Paket aufspielen können, egal von welchen Paketen es sonst noch abhängig ist. In diesem Beispiel funktioniert exim trotzdem, Sie sollten jedoch sehr sparsam und vorsichtig mit der Option --nodeps umgehen, wenn Sie Ihr System administrieren.

root@comone: # rpm -ihv --nodeps exim-3.20-4.i386.rpm

Damit exim auch ohne chkconfig beim booten gestartet wird, müssen Sie im folgenden Schritt als root ein exim -bd -q30m in die Datei /sbin/init.d/boot.local (ab SuSE 7.1 /etc/init.d/boot.local) eintragen, sowie bei der möglichen Fehlermeldungen…

/sbin/init.d/rc2.d/S80exim : [ : = : unary operator expected
 Starting exim: /sbin/init.d/rc2.d/S80exim: daemon: command not
 found

…in der Datei /sbin/init.d/rc2.d/ alle Links mit dem Namen exim löschen. Ein solcher Drahtseilakt sollte allerdings die Ausnahme und nicht die Regel bei den gängigen Distributionen sein.

Bevor Sie sich nun endlich an die Konfiguration von exim machen können, müssen Sie noch zu guter Letzt einen Link von exim zu sendmail setzten, denn viele Programme kennen nur den Pfad zu sendmail und werden auf diese Weise richtig geleitet:

ln -s /usr/sbin/exim /usr/sbin/sendmail

Die Pfad von exim und sendmail können auf Ihrem Rechner von dem angeführten Beispiel abweichen. Und bestimmt erinnern Sie sich noch an das Ergebnis des Befehls type sendmail weiter oben im Text, das Sie nun verwenden können.

Nachdem Sie Ihr System neu gebootet haben, tippen Sie zur Kontrolle, ob exim gestartet ist, in die Shell ps -ax |grep exim. Als Ergebnis sollte Sie diese oder eine ähnliche Ausgabe erhalten:

95 ? S 0:00 exim -bd -q30m

Sollten Ihnen bei der Kontrolle der Log-Dateien von exim im Verzeichnis /var/log/exim Fehlermeldungen auffallen, überprüfen Sie, ob Sie die smtp-Zeile der Datei /etc/inetd.conf mit einem Kommantarzeichen versehen haben, und, sollten Sie Yast benutzen, ob die SMTP-Variable und die POSTFIX-Variable auf no stehen.

Bereit zum Versenden

Die Konfigurationsdatei von exim befindet sich, je nach Distribution oder der Version von exim, auf Ihrem Rechner zumeist als /etc/exim.conf, /usr/local/etc/exim oder /etc/exim. Alle möglichen Anweisungen, mit denen Sie exim konfigurieren können, sind in der Textdatei OptionLists.txt zusammengefasst, deren Pfad Sie am besten mit locate OptionLists.txt herausfinden, und deren Inhalt Sie mit den Shell-Programmen less oder more lesen können. Sie brauchen keinen Grund zur Sorge zu haben, denn von den über 400 Befehlen müssen Sie nur einen Bruchteil nutzen.

Um nun Ihre Mails versenden zu können, starten Sie als root Ihren Lieblingseditor, öffnen exims Konfigurationsdatei und tragen im Abschnitt MAIN CONFIGURATION SETTINGS in die Zeile qualify_domain Ihren Domain-Namen ein:

qualify_domain = [IHRE.DOMAIN.DE]

Vielleicht merken Sie jetzt auf, weil Sie keine Domain besitzen. Das braucht dem Versenden Ihrer Mails und der korrekten Generierung einer Message-IDjedoch nicht im Wege zu stehen. Doch dazu später mehr. Lassen Sie einfach die qualify_domain-Zeile mit dem Zeichen # kommentiert und sehen Sie sich den Eintrag qualify_recipient an. Diese Zeile ist wichtig für die lokale Zustellung der Mails, also vom Cron-Daemon an den root oder vom root an den User. Tragen Sie in diese Zeile localhost ein:

qualify_recipient = localhost

Damit exim weiss, welche lokale Domain sein Arbeitgeber ist, müssen Sie es im mit folgendem Eintrag sagen:

local_domains = localhost:[IHR.RECHNERNAME].local

Mit der Anweisung:

queue_remote_domains = ! *.localhost

…bleiben alle von Ihnen geschrieben Mails in /var/spool/exim/input, bis Sie exim als root mit exim -qf -v den Befehl zum Versenden geben.

Wenn Sie Mails erlauben wollen, die an Ihren Rechnernamen oder Ihre IP-Adressegerichtet sind, dekommentieren Sie die folgende Zeilen und setzen Sie den Wert auf true:

local_domains_include_host = true
 local_domains_include_host_literals = true

Der nächste Eintrag, der für Sie interessant sein könnte, regelt, welche Rechner im Netzwerk auf Ihren Rechner localhost als Relay zugreifen dürfen. Für einen Einzelplatz-Rechner schreiben Sie diesen Eintrag:

host_accept_relay = localhost:[IHR.RECHNERNAME].local

Wenn Sie mehreren Rechnern den Zugriff erlauben wollen, verbinden Sie die Variable localhost mit den entsprechenden IP-Adressen:

host_accept_relay = localhost:[xxx.xx.xxx.0/8]

Nicht jeder Mensch schreibt ständig unter der selben Mail-Adresse, und damit exim keine Absendeadresse auf seine Basis-Einstellungen zurücksetzt, sollten Sie dem Programm sagen, welcher User auch andere Headerbenutzen darf:

trusted_users = root:[IHR.USERNAME]

Die Zeile smtp_verify setzen Sie besser auf false. Dieser Eintrag veranlasst exim, den Return-Path der Mail zu prüfen. Das kann für Sie nützlich sein im Kampfe gegen Spam, aber es kann auch hinderlich sein, wenn der Cron-Daemon vielleicht Probleme bekommt, Ihnen seine regelmäßigen Berichte zu schicken:

smtp_verify = false

Die Menge der Mails, die exim bis zum Versenden für Sie lagert, legen Sie mit folgendem Eintrag fest:

smtp_accept_queue_per_connection = 100

Und als letzten Eintrag, bevor wir den Transport der Mails zum SMTP-Server Ihres Providers konfigurieren, wenden wir uns den unzustellbaren Mails zu, die exim einfriert, und über die Sie gerne informiert werden möchten:

freeze_tell_mailmaster = true

Im Abschnitt TRANSPORTS CONFIGURATION springen wir gleich zu den Zeilen, die sich unter dem Kommentar # This transport is used for delivering messages over SMTP connections befinden, und dort fügen Sie die Anweisung headers_remove = "Message-ID" hinzu:

# This transport is used for delivering messages over SMTP connections.
 remote_smtp:
 driver = smtp
 headers_remove = "Message-ID"

Wenn Sie kein Besitzer eines Domain-Namens sind, dann erreichen Sie mit diesem Eintrag, dass die von Ihrem Mailprogramm erstellte Message-ID vor dem Versand herausgeschnitten wird. So kann Ihr Provider seine eigene, legale Message-ID in den Header Ihrer Mail einfügen.

Den Mail-Server Ihres Providers definieren Sie schließlich im Abschnitt ORDER DOES MATTER in der Zeile route_list:

# Send all mail to a smarthost
 smarthost:
 driver = domainlist
 transport = remote_smtp
 route_list = "* [MAILSERVER.PROVIDER.DE] bydns_a"
rewriting.png

Abb 1. Die Rewrite Flags im Test

Der letzte Abschnitt mit dem Namen REWRITE CONFIGURATION überschreibt Ihren Rechnernamen mit der von Ihnen vorgegebenen E-Mail-Adresse, falls Sie in der Zeile qualify_domain keinen Domain-Namen angegeben haben. Sie brauchen dazu nicht erst, wie im Konfigurationsbeipiel angegeben, die Datei /etc/email-addresses zu erstellen, sondern können Ihre Angaben in der ersten Zeile über den Beispielen eintragen:

*@[IHR.RECHNERNAME].local     IHRE.MAIL@ADRESSE.DE Ffrsh

Die Buchstaben hinter Ihrer Mail-Adresse sind Kürzel für die zu überschreibenden Header (Rewrite Flags):

F überschreibt das Envelope-From-Field
 f überschreibt den From-Header
 r überschreibt den Reply-To-Header
 s überschreibt den Sender-Header
 h überschreibt alle Header
 b überschreibt den BCC-Header
 c überschreibt den CC-Header
 T überschreibt das Envelope-To-Field
 E überschreibt alle Envelope-Fields

Ob die Regeln richtig greifen, überprüfen Sie als root mit dem Kommando exim -brw [USER@IHR.RECHNERNAME.local]. In unserem Beispiel werden für alle User, die an Ihrem Rechner arbeiten, die Header mit Ihrer Mail-Adresse überschrieben. Es ist natürlich möglich, für jeden User eine eigene Mail-Adresse zu generieren, wenn Sie den Eintrag *@[IHR.RECHNERNAME].local entsprechend ändern. Allerdings können nur solche Benutzer eine Adresse außer der Reihe benutzen, die in der Zeile trusted_users eingetragen sind.

Tip a friend    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...