<?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <!-- The FreeBSD Documentation Project The FreeBSD German Documentation Project Original Revision der ersten Uebersetzung: 1.20 $FreeBSD$ $FreeBSDde: de-docproj/books/handbook/mail/chapter.sgml,v 1.68 2011/07/25 15:00:09 bcr Exp $ basiert auf: 1.146 --> <!-- Ein paar Anmerkungen zur Uebersetzung bestimmter Begriffe ``Domain'' wurde mit ,,Domaene`` uebersetzt. ,,TCP/IP und OCS/NFS`` (Michael Santifaller) FdI* Aus ``Host'' wurde ,,Rechner``. FdI* beschreibt ``Host'' als ,,Hauptrechner`` oder ,,gastgebender Rechner``. Als Ausnahme wurde ``mail host'' mit ``E-Mail-Server'' uebersetzt. * Fdi = Fachausdruecke der Informationsverarbeitung - Woerterbuch und Glossar (IBM 1985) --> <chapter id="mail"> <chapterinfo> <authorgroup> <author> <firstname>Bill</firstname> <surname>Lloyd</surname> <contrib>Ursprüglicher Text von </contrib> </author> </authorgroup> <authorgroup> <author> <firstname>Jim</firstname> <surname>Mock</surname> <contrib>Neugeschrieben von </contrib> <!-- 2 Dec 1999 --> </author> </authorgroup> <authorgroup> <author> <firstname>Robert</firstname> <surname>Drehmel</surname> <contrib>Übersetzt von </contrib> </author> </authorgroup> </chapterinfo> <title>Elektronische Post (E-Mail)</title> <sect1 id="mail-de-term"> <title>Terminologie</title> <indexterm> <primary>E-Mail</primary> <secondary>Terminologie</secondary> </indexterm> <para>Das Akronym <firstterm>MTA</firstterm> steht für <firstterm>Mail Transfer Agent</firstterm> was übersetzt <quote>Mailübertragungs-Agent</quote> bedeutet.</para> <para>Während die Bezeichnung <firstterm>Server-Dämon</firstterm> die Komponente eines MTA benennt, die für eingehende Verbindungen zuständig ist, wird mit dem Begriff <firstterm>Mailer</firstterm> öfters die Komponente des MTA bezeichnet, die E-Mails versendet. </para> </sect1> <sect1 id="mail-synopsis"> <title>Übersicht</title> <indexterm> <primary>E-Mail</primary> </indexterm> <para><quote>Elektronische Post</quote>, besser bekannt als E-Mail, ist eine der am weit verbreitetsten Formen der Kommunikation heutzutage. Dieses Kapitel bietet eine grundlegende Einführung in das Betreiben eines E-Mail-Servers unter &os;. Ebenfalls wird der Versand und Empfang von E-Mails unter &os; behandelt. Das Kapitel ist jedoch keine komplette Referenz und es werden viele wichtige Überlegungen außer Acht gelassen. Wenn Sie das Thema detaillierter betrachten möchten, werden Sie bei einem der exzellenten Bücher fündig, die in <xref linkend="bibliography"/> aufgelistet sind. </para> <para>Dieses Kapitel behandelt die folgenden Punkte:</para> <itemizedlist> <listitem> <para>Welche Software-Komponenten beim Senden und Empfangen von elektronischer Post involviert sind.</para> </listitem> <listitem> <para>Wo sich grundlegende <application>sendmail</application> Konfigurationsdateien in FreeBSD befinden.</para> </listitem> <listitem> <para>Den Unterschied zwischen entfernten und lokalen Postfächern.</para> </listitem> <listitem> <para>Wie man Versender von Massennachrichten daran hindern kann, Ihren E-Mail-Server illegalerweise als Weiterleitung zu verwenden. </para> </listitem> <listitem> <para>Wie man den Standard-Mailer des Systems, <application>sendmail</application>, ersetzt.</para> </listitem> <listitem> <para>Wie man oft auftretende E-Mail-Server Probleme behebt.</para> </listitem> <listitem> <para>Wie E-Mails mit UUCP verschickt werden.</para> </listitem> <listitem> <para>Wie E-Mails über einen Relay verschickt werden.</para> </listitem> <listitem> <para>Wie E-Mails über eine Einwahlverbindung gehandhabt werden.</para> </listitem> <listitem> <para>Wie Sie die SMTP-Authentifizierung einrichten.</para> </listitem> <listitem> <para>Den Empfang und den Versand von E-Mails mithilfe von Programmen wie <application>mutt</application>.</para> </listitem> <listitem> <para>Wie E-Mails von einem entfernten Server mit <acronym>POP</acronym> oder <acronym>IMAP</acronym> abgeholt werden.</para> </listitem> <listitem> <para>Wie eingehende E-Mail automatisch gefiltert wird.</para> </listitem> </itemizedlist> <para>Bevor Sie dieses Kapitel lesen, sollten Sie:</para> <itemizedlist> <listitem> <para>Ihre Netzwerk-Verbindung richtig einrichten. (<xref linkend="advanced-networking"/>).</para> </listitem> <listitem> <para>Die DNS-Information für Ihren E-Mail-Server einstellen (<xref linkend="network-servers"/>).</para> </listitem> <listitem> <para>Wissen, wie man zusätzliche Dritthersteller-Software installiert (<xref linkend="ports"/>).</para> </listitem> </itemizedlist> </sect1> <sect1 id="mail-using"> <title>Elektronische Post benutzen</title> <indexterm><primary>POP</primary></indexterm> <indexterm><primary>IMAP</primary></indexterm> <indexterm><primary>DNS</primary></indexterm> <para>Fünf größere Teile sind am E-Mail-Austausch beteiligt: <link linkend="mail-mua">Das Benutzerprogramm</link>, <link linkend="mail-mta">der Server-Dämon</link>, <link linkend="mail-dns">DNS</link>, <link linkend="mail-receive">ein entferntes oder lokales Postfach</link> und natürlich <link linkend="mail-host">der E-Mail-Server</link> selbst.</para> <sect2 id="mail-mua"> <title>Das Benutzerprogramm</title> <para>Das beinhaltet Kommandozeilenprogramme wie <application>mutt</application>, <application>alpine</application>, <application>elm</application>, <application>mail</application> und Programme mit grafischer Benutzeroberfläche, wie <application>balsa</application> und <application>xfmail</application> um einige zu nennen, und <quote>aufwändigere</quote>, wie WWW-Browser. Diese Programme geben die E-Mail-Transaktionen an den lokalen <link linkend="mail-host"><quote>E-Mail-Server</quote></link>, weiter, entweder über einen der verfügbaren <link linkend="mail-mta">Server-Dämonen</link> oder eine <acronym>TCP</acronym>-Verbindung.</para> </sect2> <sect2 id="mail-mta"> <title>E-Mail-Server Dämon</title> <indexterm> <primary>E-Mail-Server Dämonen</primary> <secondary><application>sendmail</application></secondary> </indexterm> <indexterm> <primary>E-Mail-Server Dämonen</primary> <secondary><application>postfix</application></secondary> </indexterm> <indexterm> <primary>E-Mail-Server Dämonen</primary> <secondary><application>qmail</application></secondary> </indexterm> <indexterm> <primary>E-Mail-Server Dämonen</primary> <secondary><application>exim</application></secondary> </indexterm> <para>&os; enthält standardmäßig <application>sendmail</application>; es lassen sich aber auch andere E-Mail-Server Dämonen betreiben, beispielsweise</para> <itemizedlist> <listitem> <para><application>exim</application>,</para> </listitem> <listitem> <para><application>postfix</application> oder</para> </listitem> <listitem> <para><application>qmail</application>.</para> </listitem> </itemizedlist> <para>Der Server-Dämon hat üblicherweise zwei Funktionen: Er kümmert sich um das Empfangen von eingehenden E-Mails und stellt ausgehende E-Mails zu. Es ist <emphasis>nicht</emphasis> Aufgabe des Dämons, E-Mails über <acronym>POP</acronym> oder <acronym>IMAP</acronym> bereit zu stellen, noch Zugriffe auf das lokale Postfach <filename>mbox</filename> oder Verzeichnisse mit Postfächern zu gewähren. Dafür benötigen Sie einen zusätzlichen <link linkend="mail-receive">Dämon</link>.</para> <warning> <para>Alte Versionen von <application>sendmail</application> enthalten schwerwiegende Sicherheitslöcher, die einem Angreifer Zugriff auf Ihren Rechner verschaffen können. Um Sicherheitsprobleme zu umgehen, sollten Sie eine aktuelle <application>sendmail</application>-Version benutzen. Sie können auch einen anderen <acronym>MTA</acronym> aus der <link linkend="ports">&os; Ports-Sammlung</link> benutzen.</para> </warning> </sect2> <sect2 id="mail-dns"> <title>E-Mail und DNS</title> <para>Das Domain Name System (DNS) und sein Dämon <command>named</command> spielen eine große Rolle in der Auslieferung von E-Mails. Um E-Mails auszuliefern, fragt der Mail-Server-Dämon im DNS den Rechner ab, der E-Mails für das Zielsystem entgegennimmt. Der gleiche Vorgang läuft ab, wenn eine E-Mail von einem entfernten Server auf Ihrem Mail-Server zugestellt wird.</para> <indexterm> <primary>MX-Eintrag</primary> </indexterm> <para>Im <acronym>DNS</acronym> werden Rechnernamen auf IP-Adressen abgebildet. Daneben werden spezielle Informationen für das Mail-System gespeichert, die <firstterm>MX-Einträge</firstterm> (<foreignphrase>MX record</foreignphrase>) genannt werden. Der MX-Eintrag (von <foreignphrase>Mail eXchanger</foreignphrase>) gibt an, welcher Rechner oder welche Rechner E-Mails für eine Domain annehmen. Existiert kein MX-Record für einen Rechner oder dessen Domain, werden E-Mails direkt an den Rechner zugestellt, vorausgesetzt der Rechner besitzt einen A-Eintrag, der den Rechnernamen auf seine IP-Adresse abbildet.</para> <para>Mit dem Kommando &man.host.1; können Sie die MX-Einträge für eine Domain abfragen:</para> <screen>&prompt.user; <userinput>host -t mx FreeBSD.org</userinput> FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.org</screen> </sect2> <sect2 id="mail-receive"> <title>E-Mails empfangen</title> <indexterm> <primary>E-Mail</primary> <secondary>empfangen</secondary> </indexterm> <para>Der E-Mail-Server empfängt alle E-Mails für Ihre Domäne. Er speichert die E-Mails entweder im <filename>mbox</filename>-Format (die Vorgabe) oder im Maildir-Format. Die E-Mails können lokal mit Programmen wie &man.mail.1; oder <application>mutt</application> gelesen werden. Mithilfe von Protokollen wie <acronym>POP</acronym> oder <acronym>IMAP</acronym> können die E-Mails auch von entfernten Rechnern gelesen werden. Wenn Sie die E-Mails direkt auf dem E-Mail-Server lesen möchten, wird kein <acronym>POP</acronym>- oder <acronym>IMAP</acronym>-Server gebraucht.</para> <sect3 id="pop-and-imap"> <title>Auf entfernte Postfächer mit <acronym>POP</acronym> und <acronym>IMAP</acronym> zugreifen</title> <indexterm> <primary>POP</primary> </indexterm> <indexterm> <primary>IMAP</primary> </indexterm> <para>Wenn Sie auf entfernte Postfächer zugreifen wollen, benötigen Sie den Zugang zu einem <acronym>POP</acronym>- oder <acronym>IMAP</acronym>-Server. Beide Protokolle bieten einen einfachen Zugriff auf entfernte Postfächer. <acronym>IMAP</acronym> besitzt allerdings einige Vorteile, unter anderem:</para> <itemizedlist> <listitem> <para><acronym>IMAP</acronym> kann sowohl Nachrichten auf einem entfernten Server speichern als auch von dort abholen.</para> </listitem> <listitem> <para><acronym>IMAP</acronym> unterstützt gleichzeitig ablaufende Aktualisierungen.</para> </listitem> <listitem> <para>Da es nicht gleich die komplette Nachricht herunterlädt, ist <acronym>IMAP</acronym> über langsame Verbindungen sehr nützlich. Weiterhin können E-Mails auf dem Server durchsucht werden, was den Datenverkehr zwischen Clients und dem Server minimiert.</para> </listitem> </itemizedlist> <para>Wenn Sie einen <acronym>POP</acronym>- oder <acronym>IMAP</acronym>-Server installieren wollen, gehen Sie nach den folgenden Schritten vor:</para> <procedure> <step> <para>Wählen Sie einen <acronym>IMAP</acronym>- oder <acronym>POP</acronym>-Server aus, der Ihre Anforderungen erfüllt. Die nachstehenden Server sind sehr bekannt:</para> <itemizedlist> <listitem> <para><application>qpopper</application></para> </listitem> <listitem> <para><application>teapop</application></para> </listitem> <listitem> <para><application>imap-uw</application></para> </listitem> <listitem> <para><application>courier-imap</application></para> </listitem> <listitem> <para><application>dovecot</application></para> </listitem> </itemizedlist> </step> <step> <para>Installieren Sie den ausgewählten <acronym>POP</acronym>- oder <acronym>IMAP</acronym>-Daemon aus der Ports-Sammlung.</para> </step> <step> <para>Wenn erforderlich, passen Sie die Datei <filename>/etc/inetd.conf</filename> an, um den <acronym>POP</acronym>- oder <acronym>IMAP</acronym>-Server zu starten.</para> </step> </procedure> <warning> <para>Beachten Sie, dass sowohl <acronym>POP</acronym> als auch <acronym>IMAP</acronym> Daten, wie den Benutzernamen und das Passwort, im Klartext übertragen. Wenn Sie die mit diesen Protokollen übertragenen Daten schützen wollen, können Sie die Sitzung mittels &man.ssh.1; tunneln oder SSL verwenden. Tunneln von Sitzungen wird in <xref linkend="security-ssh-tunneling"/> beschrieben und SSL wird in <xref linkend="openssl"/> dargestellt.</para> </warning> </sect3> <sect3 id="local"> <title>Auf lokale Postfächer zugreifen</title> <para>Auf Postfächer können Sie lokal mithilfe spezieller Benutzerprogramme, die <firstterm>Mail-User-Agents</firstterm> (<acronym>MUA</acronym>s) genannt werden, zugreifen. Beispiele für solche Programme sind <application>mutt</application> oder &man.mail.1;.</para> </sect3> </sect2> <sect2 id="mail-host"> <title>Der E-Mail-Server</title> <indexterm><primary>E-Mail-Server</primary></indexterm> <para><quote>E-Mail-Server</quote> wird der Rechner genannt, welcher für die Zustellung und das Empfangen von E-Mails auf Ihrem Rechner oder vielleicht Ihrem Netzwerk zuständig ist.</para> </sect2> </sect1> <sect1 id="sendmail"> <sect1info> <authorgroup> <author> <firstname>Christopher</firstname> <surname>Shumway</surname> <contrib>Beigesteuert von </contrib> </author> </authorgroup> </sect1info> <title><application>sendmail</application>-Konfiguration</title> <indexterm> <primary><application>sendmail</application></primary> </indexterm> <para>&man.sendmail.8; ist das standardmäßig in FreeBSD installierte Mailübertragungsprogramm (MTA). Die Aufgabe von <application>sendmail</application> ist es, E-Mails von E-Mail-Benutzerprogrammen (<acronym>MUA</acronym>) anzunehmen und diese zu den entsprechenden Mailern zu liefern, die in der Konfigurationsdatei definiert sind. <application>sendmail</application> kann auch Netzwerkverbindungen annehmen und E-Mails zu lokalen <firstterm>Mailboxen</firstterm> <footnote> <para>Mailbox = Post- beziehungsweise Briefkasten</para> </footnote> oder anderen Programmen liefern.</para> <para><application>sendmail</application> benutzt folgende Konfigurationsdateien:</para> <indexterm> <primary><filename>/etc/mail/access</filename></primary> </indexterm> <indexterm> <primary><filename>/etc/mail/aliases</filename></primary> </indexterm> <indexterm> <primary><filename>/etc/mail/local-host-names</filename></primary> </indexterm> <indexterm> <primary><filename>/etc/mail/mailer.conf</filename></primary> </indexterm> <indexterm> <primary><filename>/etc/mail/mailertable</filename></primary> </indexterm> <indexterm> <primary><filename>/etc/mail/sendmail.cf</filename></primary> </indexterm> <indexterm> <primary><filename>/etc/mail/virtusertable</filename></primary> </indexterm> <informaltable frame="none" pgwide="1"> <tgroup cols="2"> <thead> <row> <entry>Dateiname</entry> <entry>Funktion</entry> </row> </thead> <tbody> <row> <entry> <filename>/etc/mail/access</filename> </entry> <entry>Datenbank, in der Zugriffsrechte auf <application>sendmail</application> verwaltet werden</entry> </row> <row> <entry> <filename>/etc/mail/aliases</filename> </entry> <entry>Mailbox Aliase</entry> </row> <row> <entry> <filename>/etc/mail/local-host-names</filename> </entry> <entry>Liste der Rechner für die <application>sendmail</application> E-Mails akzeptiert</entry> </row> <row> <entry> <filename>/etc/mail/mailer.conf</filename> </entry> <entry>Mailer Programmkonfiguration</entry> </row> <row> <entry> <filename>/etc/mail/mailertable</filename> </entry> <entry>Mailer Versand-Zuordnungstabelle</entry> </row> <row> <entry> <filename>/etc/mail/sendmail.cf</filename> </entry> <entry>Hauptkonfigurationsdatei für <application>sendmail</application></entry> </row> <row> <entry> <filename>/etc/mail/virtusertable</filename> </entry> <entry>Virtuelle Benutzer und Domänen-Tabellen</entry> </row> </tbody> </tgroup> </informaltable> <sect2> <title><filename>/etc/mail/access</filename></title> <para>Die Zugriffsdatenbank bestimmt, welche(r) Rechner oder IP-Adresse(n) Zugriff auf den lokalen E-Mail-Server haben und welche Art von Zugriff ihnen gestattet wird. Rechner können als <option>OK</option>, <option>REJECT</option> oder <option>RELAY</option> eingetragen oder einfach an <application>sendmail</application>s Fehlerbehandlungsroutine mit einem angegebenen Mailer-Fehler übergeben werden. Rechner, die als <option>OK</option> eingetragen sind, was die Grundeinstellung ist, sind berechtigt E-Mails zu diesem Rechner zu schicken, solange die endgültige Zieladresse der lokale Rechner ist. Verbindungen von Rechnern, die als <option>REJECT</option> aufgelistet sind, werden abgelehnt. Rechnern mit gesetzter <option>RELAY</option>-Option für ihren Rechnernamen wird erlaubt Post für jede Zieladresse durch diesen Mail-Server zu senden.</para> <example> <title>Konfigurieren der <application>sendmail</application> Zugriffsdatenbank</title> <programlisting>cyberspammer.com 550 We do not accept mail from spammers FREE.STEALTH.MAILER@ 550 We do not accept mail from spammers another.source.of.spam REJECT okay.cyberspammer.com OK 128.32 RELAY</programlisting> </example> <para>In diesem Beispiel haben wir fünf Einträge. E-Mail-Versender, die mit der linken Spalte der Tabelle übereinstimmen, sind betroffen von der Aktion in der rechten Spalte. Die ersten beiden Beispiele übergeben einen Fehlercode an <application>sendmail</application>s Fehlerbehandlungsroutine. Die Nachricht wird an den entfernten Rechner gesendet, wenn eine Nachricht mit der linken Spalte der Tabelle übereinstimmt. Der nächste Eintrag lehnt Post von einem bestimmten Rechner des Internets ab (<hostid>another.source.of.spam</hostid>). Der nächste Eintrag akzeptiert E-Mail-Verbindungen des Rechners <hostid role="fqdn">okay.cyberspammer.com</hostid>, der exakter angegeben wurde als <hostid role="fqdn">cyberspammer.com</hostid> in der Zeile darüber. Genauere Übereinstimmungen haben den Vorrang vor weniger genauen. Der letzte Eintrag erlaubt die Weiterleitung von elektronischer Post von Rechnern mit einer IP-Adresse die mit <hostid>128.32</hostid> beginnt. Diese Rechner würden E-Mails durch diesen E-Mail-Server senden können, die für andere E-Mail-Server bestimmt sind.</para> <para>Wenn diese Datei geändert wird, müssen Sie <command>make</command> in <filename>/etc/mail</filename> ausführen um die Datenbank zu aktualisieren.</para> </sect2> <sect2> <title><filename>/etc/mail/aliases</filename></title> <para>Die Alias-Datenbank enthält eine Liste der virtuellen Mailboxen, die in andere Benutzer, Dateien, Programme oder andere Aliase expandiert werden. Hier sind ein paar Beispiele, die in <filename>/etc/mail/aliases</filename> benutzt werden können:</para> <example> <title>E-Mail Aliases</title> <programlisting>root: localuser ftp-bugs: joe,eric,paul bit.bucket: /dev/null procmail: "|/usr/local/bin/procmail"</programlisting> </example> <para>Das Dateiformat ist simpel; Der Name der Mailbox auf der linken Seite des Doppelpunkts wird mit den Zielen auf der rechten Seite ersetzt. Das erste Beispiel ersetzt die Mailbox <username>root</username> mit der Mailbox <username>localuser</username>, die dann wieder in der Alias-Datenbank gesucht wird. Wird kein passender Eintrag gefunden, wird die Nachricht zum lokalen Benutzer <username>localuser</username> geliefert. Das nächste Beispiel zeigt eine E-Mail-Verteilerliste. E-Mails an die Mailbox <username>ftp-bugs</username> werden zu den drei lokalen Mailboxen <username>joe</username>, <username>eric</username> und <username>paul</username> gesendet. Eine lokale Mailbox kann auch als <email>user@example.com</email> angegeben werden. Das nächste Beispiel zeigt das Schreiben von E-Mails in eine Datei, in diesem Fall <filename>/dev/null</filename>. Das letzte Beispiel verdeutlicht das Senden von E-Mails an ein Programm, in diesem Fall wird die Nachricht in die Standardeingabe von <filename>/usr/local/bin/procmail</filename> mittels einer UNIX Pipe geschrieben.</para> <para>Wenn diese Datei geändert wird, müssen Sie <command>make</command> in <filename>/etc/mail</filename> ausführen um die Änderungen in die Datenbank zu übernehmen.</para> </sect2> <sect2> <title><filename>/etc/mail/local-host-names</filename></title> <para>Das ist die Liste der Rechnernamen, die &man.sendmail.8; als lokalen Rechnernamen akzeptiert. Setzen Sie alle Domänen oder Rechner, für die <application>sendmail</application> Mail empfangen soll, in diese Datei. Wenn dieser Mail-Server zum Beispiel E-Mails für die Domäne example.com und den Rechner <hostid role="fqdn">mail.example.com</hostid> annehmen soll, könnte seine <filename>local-host-names</filename> Datei so aussehen:</para> <programlisting>example.com mail.example.com</programlisting> <para>Wird diese Datei geändert, muss &man.sendmail.8; neu gestartet werden, damit es die Neuerungen einliest.</para> </sect2> <sect2> <title><filename>/etc/mail/sendmail.cf</filename></title> <para>Die Hauptkonfigurations-Datei von <application>sendmail</application> (<filename>sendmail.cf</filename>) kontrolliert das allgemeine Verhalten von <application>sendmail</application>, einschließlich allem vom Umschreiben von E-Mail Adressen bis hin zum Übertragen von Ablehnungsnachrichten an entfernte E-Mail-Server. Mit solch einer mannigfaltigen Rolle ist die Konfigurationsdatei natürlich ziemlich komplex und ihre Einzelheiten können in diesem Kapitel nicht besprochen werden. Glücklicherweise muss diese Datei selten für Standard E-Mail-Server geändert werden.</para> <para>Die <application>sendmail</application> Hauptkonfigurationsdatei kann mit &man.m4.1; Makros erstellt werden, die Eigenschaften und Verhalten von <application>sendmail</application> definieren. Einige der Details finden Sie in <filename>/usr/src/contrib/sendmail/cf/README</filename>.</para> <para>Wenn Änderungen an dieser Datei vorgenommen werden, muss <application>sendmail</application> neu gestartet werden, damit die Änderungen Wirkung zeigen.</para> </sect2> <sect2> <title><filename>/etc/mail/virtusertable</filename></title> <para>Die Datei <filename>virtusertable</filename> ordnet Adressen für virtuelle Domänen und Mailboxen reellen Mailboxen zu. Diese Mailboxen können lokal, auf entfernten Systemen, Aliase in <filename>/etc/mail/aliases</filename> oder eine Datei sein.</para> <example> <title>Beispiel einer virtuellen Domänen Zuordnung</title> <programlisting>root@example.com root postmaster@example.com postmaster@noc.example.net @example.com joe</programlisting> </example> <para>In dem obigen Beispiel haben wir einen Eintrag für die Domäne <hostid role="domainname">example.com</hostid>. Diese Datei wird nach dem ersten übereinstimmenden Eintrag durchsucht. Die erste Zeile ordnet <email>root@example.com</email> der lokalen Mailbox <username>root</username> zu. Der nächste Eintrag ordnet <email>postmaster@example.com</email> der Mailbox <username>postmaster</username> auf dem Rechner <hostid role="fqdn">noc.example.net</hostid> zu. Zuletzt, wenn keine Übereinstimmung von <hostid role="fqdn">example.com</hostid> gefunden wurde, wird der letzte Eintrag verglichen, der mit jeder Mail-Nachricht übereinstimmt, die an jemanden bei <hostid>example.com</hostid> adressiert wurde. Diese werden der lokalen Mailbox joe zugeordnet.</para> </sect2> </sect1> <sect1 id="mail-changingmta"> <sect1info> <authorgroup> <author> <firstname>Andrew</firstname> <surname>Boothman</surname> <contrib>Geschrieben von </contrib> </author> </authorgroup> <authorgroup> <author> <firstname>Gregory</firstname> <surname>Neil Shapiro</surname> <contrib>Informationen entnommen aus E-Mails geschrieben von </contrib> </author> </authorgroup> </sect1info> <title>Wechseln des Mailübertragungs-Agenten</title> <indexterm> <primary>E-Mail</primary> <secondary>MTA, wechseln</secondary> </indexterm> <para>Wie bereits erwähnt, ist bei FreeBSD <application>sendmail</application> schon als Ihr Mailübertragungs-Agent installiert. Deswegen ist es standardmäßig für Ihre aus- und eingehenden E-Mails verantwortlich.</para> <para>Jedoch wollen einige Systemadministratoren den MTA ihres Systems wechseln, was eine Reihe von Gründen haben kann. Diese Gründe reichen von einfach einen anderen MTA ausprobieren wollen bis hin dazu eine bestimmte Besonderheit zu benötigen oder ein Paket, welches auf einen anderen Mailer angewiesen ist. Glücklicherweise macht FreeBSD das Wechseln einfach, egal aus welchem Grund.</para> <sect2> <title>Installieren eines neuen MTA</title> <para>Sie haben eine große Auswahl an verfügbaren MTA-Programmen. Ein guter Startpunkt ist die <link linkend="ports">FreeBSD-Ports-Sammlung</link>, wo Sie viele finden werden. Selbstverständlich steht es Ihnen frei, jeden MTA von überall her zu verwenden, solange Sie ihn unter FreeBSD zum Laufen bekommen.</para> <para>Fangen Sie an, indem Sie Ihren neuen MTA installieren. Sobald er installiert ist, gibt er Ihnen die Chance zu entscheiden ob er wirklich Ihren Bedürfnissen genügt. Zusätzlich gibt er Ihnen die Möglichkeit die neue Software zu konfigurieren, bevor sie den Job von <application>sendmail</application> übernimmt. Dabei sollten Sie sicherstellen, dass beim Installieren der neuen Software keine Versuche unternommen werden, System-Programme wie <filename>/usr/bin/sendmail</filename> zu überschreiben. Ansonsten wurde Ihre neue E-Mail-Software in den Dienst gestellt, bevor Sie sie konfiguriert haben.</para> <para>Für Informationen über die Konfiguration des von Ihnen gewählten MTAs sehen Sie bitte in der dazugehörigen Dokumentation nach.</para> </sect2> <sect2 id="mail-disable-sendmail"> <title>Ausschalten von <application>sendmail</application></title> <warning> <para>Wenn Sie die Sendefunktion von <application>sendmail</application> deaktivieren, müssen Sie für den E-Mail-Versand ein alternatives System installieren. Tun Sie dies nicht, sind Systemfunktionen wie &man.periodic.8; nicht mehr in der Lage, ihre Resulate und Meldungen als E-Mail zu versenden. Aber auch viele andere Teile Ihres Systems erwarten, dass Sie über ein <application>sendmail</application>-kompatibles System verfügen. Sind Programme auf (die von Ihnen deaktivierten) <application>sendmail</application>-Binärdateien angewiesen, landen deren E-Mails ansonsten in einer inaktiven <application>sendmail</application>-Warteschlange und können nicht ausgeliefert werden.</para> </warning> <para>Um <application>sendmail</application> komplett zu deaktivieren (also inklusive der Funktion zum Versand von E-Mails), fügen Sie die Zeile</para> <programlisting>sendmail_enable="NO" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO"</programlisting> <para>in <filename>/etc/rc.conf</filename> ein.</para> <para>Wenn Sie lediglich die Funktion zum Empfang von E-Mails durch <application>sendmail</application> deaktivieren wollen, sollten Sie folgenden Eintrag in <filename>/etc/rc.conf</filename> einfügen:</para> <programlisting>sendmail_enable="NO"</programlisting> <para>Weitere Informationen zu den Startoptionen von <application>sendmail</application> finden Sie in der Manualpage &man.rc.sendmail.8;.</para> </sect2> <sect2> <title>Starten Ihres neuen MTA beim Hochfahren des Systems</title> <para>Der neue MTA kann beim Hochfahren durch das Hinzufügen einer Konfigurationszeile in der <filename>/etc/rc.conf</filename> gestartet werden, wie das folgende Beispiel für Postfix zeigt:</para> <screen>&prompt.root; echo '<replaceable>postfix</replaceable>_enable=<quote>YES</quote>' >> /etc/rc.conf</screen> <para>Der MTA wird jetzt automatisch beim Hochfahren des Systems gestartet.</para> </sect2> <sect2> <title>Ersetzen von <application>sendmail</application> als Standard-Mailer des Systems</title> <para>Das Programm <application>sendmail</application> ist so allgegenwärtig als Standard-Software auf &unix; Systemen, dass einige Programme einfach annehmen es sei bereits installiert und konfiguriert. Aus diesem Grund stellen viele alternative MTAs ihre eigenen kompatiblen Implementierung der <application>sendmail</application> Kommandozeilen-Schnittstelle zur Verfügung. Das vereinfacht ihre Verwendung als <quote>drop-in</quote> Ersatz für <application>sendmail</application>.</para> <para>Folglich werden Sie, wenn Sie einen alternativen Mailer benutzen, sicherstellen müssen, dass ein Programm, das versucht <application>sendmail</application>s Standard-Dateien wie <filename>/usr/bin/sendmail</filename> auszuführen, stattdessen Ihr gewähltes Mailübertragungsprogramm ausführt. Zum Glück stellt FreeBSD das &man.mailwrapper.8;-System zur Verfügung, das diese Arbeit für Sie erledigt.</para> <para>Wenn <application>sendmail</application> arbeitet wie es installiert wurde, werden Sie in <filename>/etc/mail/mailer.conf</filename> etwas wie das Folgende vorfinden:</para> <programlisting>sendmail /usr/libexec/sendmail/sendmail send-mail /usr/libexec/sendmail/sendmail mailq /usr/libexec/sendmail/sendmail newaliases /usr/libexec/sendmail/sendmail hoststat /usr/libexec/sendmail/sendmail purgestat /usr/libexec/sendmail/sendmail</programlisting> <para>Das bedeutet, dass wenn eines der gewöhnlichen Kommandos (wie zum Beispiel <filename>/usr/bin/sendmail</filename> selbst) ausgeführt wird, das System tatsächlich eine Kopie des mailwrapper mit dem Namen <filename>sendmail</filename> startet, die <filename>mailer.conf</filename> überprüft und <filename>/usr/libexec/sendmail/sendmail</filename> ausführt. Mit diesem System lassen sich die Programme, die für die <application>sendmail</application>-Funktionen gestartet werden, leicht ändern.</para> <para>Daher könnten Sie, wenn Sie wollten, dass <filename>/usr/local/supermailer/bin/sendmail-compat</filename> anstelle von <application>sendmail</application> ausgeführt wird, <filename>/etc/mailer.conf</filename> wie folgt abändern: </para> <programlisting>sendmail /usr/local/supermailer/bin/sendmail-compat send-mail /usr/local/supermailer/bin/sendmail-compat mailq /usr/local/supermailer/bin/mailq-compat newaliases /usr/local/supermailer/bin/newaliases-compat hoststat /usr/local/supermailer/bin/hoststat-compat purgestat /usr/local/supermailer/bin/purgestat-compat</programlisting> </sect2> <sect2> <title>Fertigstellen</title> <para>Sobald Sie alles Ihren Wünschen entsprechend konfiguriert haben, sollten Sie entweder die <application>sendmail</application> Prozesse beenden, die Sie nicht mehr benötigen, und die zu Ihrer neuen Software zugehörigen Prozesse starten, oder einfach das System neustarten. Das Neustarten des Systems gibt Ihnen auch die Gelegenheit sicherzustellen, dass Sie Ihr System korrekt konfiguriert haben, um Ihren neuen MTA automatisch beim Hochfahren zu starten.</para> </sect2> </sect1> <sect1 id="mail-trouble"> <title>Fehlerbehebung</title> <para>Hier finden sich ein paar häufig gestellte Fragen und ihre Antworten, die von der <ulink url="&url.books.faq;/">FAQ</ulink> übernommen wurden.</para> <qandaset> <qandaentry> <question> <para>Warum muss ich einen FQDN (fully-qualified domain name/ voll ausgeschriebenen Domänennamen) für meine Rechner verwenden?</para> </question> <answer> <para>Vielleicht liegen die Rechner in einer unterschiedlichen Domäne; zum Beispiel, wenn Sie sich in <hostid role="fqdn">foo.bar.edu</hostid> befinden, und einen Rechner namens <hostid>mumble</hostid> in der <hostid role="domainname">bar.edu</hostid> Domäne erreichen wollen, müssen Sie ihn mit dem voll ausgeschriebenen Domänennamen <hostid role="fqdn">mumble.bar.edu</hostid> kontaktieren, anstatt bloß mit <hostid>mumble</hostid>.</para> <para>Traditionell wurde das von dem BSD BIND <foreignphrase>Resolver</foreignphrase> erlaubt. Wie auch immer, die aktuelle Version von <application>BIND</application>, die mit FreeBSD ausgeliefert wird, bietet keine Standardabkürzungen für nicht komplett angegebene Domänennamen außerhalb der Domäne, in der Sie sich befinden. Daher muss ein nicht-qualifizierter Rechner <hostid>mumble</hostid> entweder als <hostid role="fqdn">mumble.foo.bar.edu</hostid> gefunden werden, oder er wird in der root Domäne gesucht.</para> <para>Damit unterscheidet es sich von vorherigem Verhalten, bei dem die Suche über <hostid role="domainname">mumble.bar.edu</hostid> und <hostid role="domainname">mumble.edu</hostid> lief. Schauen Sie sich RFC 1535 an, wenn Sie wissen möchten, warum das als schlecht und sogar als Sicherheitsloch angesehen wurde.</para> <para>Um das zu umgehen, können Sie die Linie <programlisting>search foo.bar.edu bar.edu</programlisting> anstatt der vorherigen <programlisting>domain foo.bar.edu</programlisting> in Ihre <filename>/etc/resolv.conf</filename> einsetzen. Aber stellen Sie sicher, dass die Suchordnung nicht die Begrenzung von <quote>lokaler und öffentlicher Administration</quote>, wie RFC 1535 sie nennt, überschreitet.</para> </answer> </qandaentry> <qandaentry> <question> <indexterm> <primary>MX-Eintrag</primary> </indexterm> <para>Warum meldet Sendmail <errorname>mail loops back to myself</errorname>?</para> </question> <answer> <para>Dies wird in der Sendmail-FAQ wie folgt beantwortet:</para> <literallayout>Ich erhalte folgende Fehlermeldungen: 553 MX list for domain.net points back to relay.domain.net 554 <user@domain.net>... Local configuration error Wie kann ich dieses Problem lösen? Sie haben durch die Benutzung eines MX-Eintrags eingestellt, dass Mail für die Domäne (z.B. domain.net) an einen speziellen Host (in diesem Fall relay.domain.net) weitergeleitet wird, aber der Relay-Host erkennt sich selbst nicht als domain.net. Fügen Sie domain.net in /etc/mail/local-host-names [die Datei hieß vor der Version 8.10 /etc/sendmail.cw] (falls Sie FEATURE(use_cw_file) benutzen) oder "Cw domain.net" in /etc/mail/sendmail.cf ein.</literallayout> <para>Die aktuelle Version der <ulink url="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq">Sendmail-FAQ</ulink> wird nicht mehr mit dem Sendmail-Release verwaltet. Sie wird jedoch regelmäßig nach <ulink url="news:comp.mail.sendmail">comp.mail.sendmail</ulink>, <ulink url="news:comp.mail.misc">comp.mail.misc</ulink>, <ulink url="news:comp.mail.smail">comp.mail.smail</ulink>, <ulink url="news:comp.answers">comp.answers</ulink> und <ulink url="news:news.answers">news.answers</ulink> gepostet. Sie können auch eine Kopie per E-Mail bekommen, indem Sie eine Mail mit dem Inhalt <literal>send usenet/news.answers/mail/sendmail-faq</literal> an <literal>mail-server@rtfm.mit.edu</literal> schicken.</para> </answer> </qandaentry> <qandaentry> <question> <indexterm><primary>PPP</primary></indexterm> <para>Wie kann ich einen E-Mail-Server auf einem Anwahl-PPP Rechner betreiben?</para> </question> <answer> <para>Sie wollen einen FreeBSD-Rechner in einem LAN an das Internet anbinden. Der FreeBSD-Rechner wird ein E-Mail <foreignphrase>Gateway</foreignphrase> für das LAN. Die PPP-Verbindung ist keine Standleitung.</para> <indexterm> <primary>MX-Eintrag</primary> </indexterm> <para>Es gibt mindestens zwei Wege um dies zu tun. Einer davon ist UUCP zu verwenden.</para> <para>Ein anderer Weg ist, von einem immer mit dem Internet verbundenen Server einen sekundären MX-Dienst für Ihre Domäne zur Verfügung gestellt zu bekommen. Wenn die Domäne Ihrer Firma <hostid role="domainname">example.com</hostid> ist, und Ihr Internet-Dienstanbieter <hostid role="domainname">example.net</hostid> so eingestellt hat, dass er Ihrer Domäne einen sekundären MX-Dienst zur Verfügung stellt:</para> <programlisting>example.com. MX 10 bigco.com. MX 20 example.net.</programlisting> <para>Nur ein Rechner sollte als Endempfänger angegeben sein (fügen Sie <literal>Cw example.com</literal> zu <filename>/etc/sendmail.cf</filename> auf example.com).</para> <para>Wenn das <command>sendmail</command> des Versenders versucht, die E-Mail zuzustellen, wird es versuchen, Sie über die Modem-Verbindung (<hostid role="domainname">example.com</hostid>) zu erreichen. Wahrscheinlich wird es keine Verbindung zustande bringen können, da Sie nicht eingewählt sind. <command>sendmail</command> wird die E-Mail automatisch zu der sekundären MX-Stelle geliefert, zu Ihrem Internet-Provider (<hostid role="domainname">example.net</hostid>). Die sekundäre MX-Stelle wird periodisch versuchen versuchen eine Verbindung zu Ihnen aufzubauen, um die E-Mail zu der primären MX-Stelle (<hostid role="domainname">example.com</hostid> zu liefern.</para> <para>Eventuell wollen Sie etwas wie dies als Login-Skript:</para> <programlisting>#!/bin/sh # Put me in /usr/local/bin/pppmyisp ( sleep 60 ; /usr/sbin/sendmail -q ) & /usr/sbin/ppp -direct pppmyisp</programlisting> <para>Wenn Sie ein separates Login-Skript für einen Benutzer erstellen wollen, könnten Sie stattdessen <command>sendmail -qRexample.com</command> in dem oben gezeigten Skript verwenden. Das erzwingt die sofortige Verarbeitung der E-Mails in Ihrer Warteschlange für <hostid role="domainname">example.com</hostid></para> <para>Eine weitere Verfeinerung der Situation ist wie folgt:</para> <para>Die Nachricht wurde der &a.isp; entnommen.</para> <programlisting>> wir stellen einem Kunden den sekundären MX zur Verfügung. > Der Kunde verbindet sich mit unseren Diensten mehrmals am Tag > automatisch um die E-Mails zu seinem primären MX zu holen > (wir wählen uns nicht bei ihm ein, wenn E-Mails für seine > Domäne eintreffen). Unser sendmail sendet den Inhalt der > E-Mail-Warteschlange alle 30 Minuten. Momentan muss er 30 Minuten > eingewählt bleiben um sicher zu sein, dass alle seine E-Mails > beim primären MX eingetroffen sind. > > Gibt es einen Befehl, der sendmail dazu bringt, alle E-Mails sofort > zu senden? Der Benutzer hat natürlich keine root-Rechte auf > unserer Maschine. In der <quote>privacy flags</quote> Sektion von sendmail.cf befindet sich die Definition Opgoaway,restrictqrun Entferne restrictqrun um nicht-root Benutzern zu erlauben, die Verarbeitung der Nachrichten-Warteschlangen zu starten. Möglicherweise willst du auch die MX neu sortieren. Wir sind der primäre MX für unsere Kunden mit diesen Wünschen und haben definiert: # Wenn wir der beste MX für einen Rechner sind, versuche es direkt # anstatt einen lokalen Konfigurationsfehler zu generieren. OwTrue Auf diesem Weg liefern Gegenstellen direkt zu dir, ohne die Kundenverbindung zu versuchen. Dann sendest du zu deinem Kunden. Das funktioniert nur für <quote>Rechner</quote>, du musst also deinen Kunden dazu bringen, ihre E-Mail Maschine <quote>customer.com</quote> zu nennen, sowie <quote>hostname.customer.com</quote> im DNS. Setze einfach einen A-Eintrag in den DNS für <quote>customer.com</quote>.</programlisting> </answer> </qandaentry> <qandaentry> <question> <para>Warum bekomme ich die Fehlermeldung <errorname>Relaying Denied</errorname>, wenn ich E-Mails von anderen Rechnern verschicke?</para> </question> <answer> <para>In der standardmäßigen FreeBSD-Installation wird <application>sendmail</application> nur dazu konfiguriert, E-Mails von dem Rechner, auf dem es läuft, zu senden. Wenn zum Beispiel ein <acronym>POP</acronym>-Server installiert ist, können Benutzer ihre E-Mails von der Schule, von der Arbeit oder von anderen Orten überprüfen. Sie werden jedoch keine E-Mails von außen verschicken können. Typischerweise wird ein paar Sekunden nach dem Versuch eine E-Mail von <application>MAILER-DAEMON</application> mit einer <errorname>5.7 Relaying Denied</errorname> Fehlermeldung versendet werden.</para> <para>Es sind mehrere Wege möglich, dies zu umgehen. Die geradlinigste Lösung ist die Adresse Ihres Internet-Dienstanbieters in die Datei für die Weiterleitungs-Domänen zu platzieren. Das lässt sich schnell erreichen mit:</para> <screen>&prompt.root; <userinput>echo "your.isp.example.com" > /etc/mail/relay-domains</userinput></screen> <para>Nach Erstellen oder Editieren dieser Datei müssen Sie <application>sendmail</application> neu starten. Das funktioniert großartig wenn Sie ein Server-Administrator sind und E-Mails nicht lokal versenden, oder gerne ein Client/System mit grafischer Oberfläche auf einer anderen Maschine oder sogar über einen anderen Internet-Dienstanbieter verwenden wollen. Es ist auch sehr nützlich, wenn Sie nur ein oder zwei E-Mail Accounts eingerichtet haben. Soll eine größere Anzahl Adressen hinzugefügt werden, können Sie die Datei einfach in Ihrem favorisierten Editor öffnen und die Domänen anfügen, je eine pro Zeile:</para> <programlisting>your.isp.example.com other.isp.example.net users-isp.example.org www.example.org</programlisting> <para>Jetzt wird jede E-Mail, die durch Ihr System von einem der in diese Liste eingetragenen Rechner geschickt wurde, ihr Ziel erreichen (vorausgesetzt, der Benutzer hat einen Account auf Ihrem System). Dies ist ein sehr schöner Weg, um Benutzern das entfernte E-Mail Versenden von Ihrem System zu erlauben, ohne dem Massenversand (<acronym>SPAM</acronym>) die Tür zu öffnen.</para> </answer> </qandaentry> </qandaset> </sect1> <sect1 id="mail-advanced"> <title>Weiterführende Themen</title> <para>Die folgenden Abschnitte behandeln kompliziertere Themen wie E-Mail-Konfiguration und das Einrichten von E-Mail für Ihre ganze Domäne.</para> <sect2 id="mail-config"> <title>Grundlegende Konfiguration</title> <para>Mit der Software im Auslieferungszustand sollten Sie fähig sein, E-Mails an externe Rechner zu senden, solange Sie <filename>/etc/resolv.conf</filename> eingerichtet haben oder Ihren eigenen Name Server laufen lassen. Wenn Sie die E-Mails für Ihren Rechner zu einem anderen Rechner geliefert haben wollen, gibt es zwei Methoden:</para> <itemizedlist> <listitem> <para>Betreiben Sie Ihren eigenen Name Server und haben Sie Ihre eigene Domäne, zum Beispiel <hostid role="domainname">FreeBSD.org</hostid>.</para> </listitem> <listitem> <para>Lassen Sie sich E-Mails direkt zu Ihrem Rechner liefern. Dies geschieht indem E-Mails direkt zu dem aktuellen DNS Namen Ihrer Maschine geliefert werden. Zum Beispiel <hostid role="fqdn">example.FreeBSD.org</hostid>.</para> </listitem> </itemizedlist> <para>Ungeachtet welche Methode Sie auswählen, um E-Mails direkt zu Ihrem Rechner geliefert zu bekommen, benötigen Sie eine permanente (statische) IP-Adresse (keine dynamische PPP-Anwahl). Wenn Sie sich hinter einer Firewall befinden, muss diese den SMTP-Verkehr an Sie weiterleiten. Wollen Sie E-Mails an Ihrem Rechner selbst empfangen, müssen Sie eines der folgenden Dinge sicherstellen:</para> <itemizedlist> <listitem> <para>Vergewissern Sie sich, dass der MX-Eintrag in Ihrem DNS zu der IP-Adresse Ihres Rechners zeigt.</para> </listitem> <listitem> <para>Stellen Sie sicher, dass sich für Ihren Rechner kein MX-Eintrag im DNS befindet.</para> </listitem> </itemizedlist> <para>Jede der erwähnten Konfigurationsmöglichkeiten erlaubt Ihnen, E-Mails direkt auf Ihrem Rechner zu empfangen.</para> <para>Versuchen Sie das:</para> <screen>&prompt.root; <userinput>hostname</userinput> example.FreeBSD.org &prompt.root; <userinput>host example.FreeBSD.org</userinput> example.FreeBSD.org has address 204.216.27.XX</screen> <para>Wenn Sie diese Ausgabe erhalten, sollten direkt an <email role="nolink">yourlogin@example.FreeBSD.org</email> geschickte E-Mails ohne Probleme funktionieren.</para> <para>Sehen Sie stattdessen etwas wie dies:</para> <screen>&prompt.root; <userinput>host example.FreeBSD.org</userinput> example.FreeBSD.org has address 204.216.27.XX example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org</screen> <para>So wird jede an Ihren Rechner (<hostid role="fqdn">example.FreeBSD.org</hostid>) gesandte E-Mail auf <hostid>hub</hostid> unter dem gleichen Benutzernamen gesammelt anstatt direkt zu Ihrem Rechner geschickt zu werden.</para> <para>Die obige Information wird von Ihrem DNS-Server verwaltet. Der DNS-Eintrag, der die E-Mail Routen-Information enthält, ist der <foreignphrase><emphasis>M</emphasis>ail e<emphasis>X</emphasis>change</foreignphrase> Eintrag. Existiert kein MX-Eintrag, werden E-Mails direkt anhand der IP-Adresse geliefert. </para> <para>Der MX-Eintrag für <hostid role="fqdn">freefall.FreeBSD.org</hostid> sah einmal so aus: </para> <programlisting>freefall MX 30 mail.crl.net freefall MX 40 agora.rdrop.com freefall MX 10 freefall.FreeBSD.org freefall MX 20 who.cdrom.com</programlisting> <para>Wie Sie sehen können, hatte <hostid>freefall</hostid> viele MX-Einträge. Die kleinste MX-Nummer ist der Rechner, der die E-Mails letztendlich bekommt, wobei die anderen temporär E-Mails in Warteschlangen einreihen während <hostid>freefall</hostid> beschäftigt oder unerreichbar ist.</para> <para>Um besonders nützlich zu sein, sollten stellvertretende MX-Seiten nicht dieselben Internet-Verbindungen wie Ihre eigene verwenden. Für Ihren Internet-Dienstleister oder andere sollte es kein Problem darstellen, Ihnen diesen Dienst zur Verfügung zu stellen.</para> </sect2> <sect2 id="mail-domain"> <title>E-Mails für Ihre Domäne</title> <para>Um einen <quote>E-Mail-Server</quote> (auch bekannt als Mail-Server) einzurichten, benötigen Sie eine Umlenkung jeglicher E-Mails zu Ihm, die an die verschiedenen Workstations gesendet werden. Im Grunde wollen Sie jede an Ihre Domäne gesendete E-Mail abfangen (in diesem Fall <hostid role="fqdn">*.FreeBSD.org</hostid>), damit Ihre Benutzer E-Mails mittels POP oder direkt auf dem Server überprüfen können.</para> <para>Am einfachsten ist es, wenn Accounts mit gleichen <emphasis>Benutzernamen</emphasis> auf beiden Maschinen existieren. Verwenden Sie &man.adduser.8;, um dies zu erreichen.</para> <para>Der E-Mail-Server, den Sie verwenden wollen, muss als für den E-Mail-Austausch zuständiger Rechner auf jeder Workstation im Netzwerk gekennzeichnet werden. Dies wird in der DNS-Konfiguration so ausgeführt:</para> <programlisting>example.FreeBSD.org A 204.216.27.XX ; Workstation MX 10 hub.FreeBSD.org ; Mailhost</programlisting> <para>Diese Einstellung wird E-Mail für die Workstations zu dem E-Mail-Server leiten, wo auch immer der A-Eintrag hinzeigt. Die E-Mails werden zum MX-Rechner gesandt.</para> <para>Sofern Sie nicht einen DNS-Server laufen haben, können Sie diese Einstellung nicht selbst vornehmen. Ist es Ihnen nicht möglich einen eigenen DNS-Server laufen zu lassen, reden Sie mit Ihren Internet-Dienstleister oder wer auch immer Ihre DNS-Verwaltung übernimmt.</para> <para>Wenn Sie ein virtuelles E-Mail System anbieten, werden die folgenden Informationen nützlich sein. Für ein Beispiel nehmen wir an, Sie haben einen Kunden mit einer eigenen Domäne, in diesem Fall <hostid role="domainname">customer1.org</hostid> und Sie wollen jegliche E-Mails für <hostid role="domainname">customer1.org</hostid> zu Ihrem E-Mail-Server gesendet haben, der <hostid role="fqdn">mail.myhost.com</hostid> heißt. Der Eintrag in Ihrem DNS sollte wie folgender aussehen:</para> <programlisting>customer1.org MX 10 mail.myhost.com </programlisting> <para>Sie benötigen <emphasis>keinen</emphasis> A-Eintrag, wenn Sie für die Domain nur E-Mails verwalten wollen.</para> <note> <para>Bedenken Sie, dass das Pingen von <hostid role="domainname">customer1.org</hostid> nicht möglich ist, solange kein A-Eintrag für diese Domäne existiert. </para> </note> <para>Jetzt müssen Sie nur noch <application>sendmail</application> auf Ihrem Mailrechner mitteilen, für welche Domänen und/oder Rechnernamen es Mails akzeptieren soll. Es gibt einige Wege wie dies geschehen kann. Die Folgenden funktionieren alle gleichermaßen:</para> <itemizedlist> <listitem> <para>Fügen Sie die Rechnernamen zu Ihrer <filename>/etc/sendmail.cw</filename> Datei hinzu, wenn Sie <literal>FEATURE(use_cw_file)</literal> verwenden. Ab <application>sendmail</application> 8.10 heißt diese Datei <filename>/etc/mail/local-host-names</filename>.</para> </listitem> <listitem> <para>Tragen Sie eine Zeile mit dem Inhalt <literal>Cwyour.host.com</literal> in Ihre <filename>/etc/sendmail.cf</filename> Datei (beziehungsweise <filename>/etc/mail/sendmail.cf</filename> ab <application>sendmail</application> 8.10) ein.</para> </listitem> </itemizedlist> </sect2> </sect1> <sect1 id="SMTP-UUCP"> <title>SMTP über UUCP</title> <para>Die <application>sendmail</application>-Konfigurationsdatei, die mit FreeBSD ausgeliefert wird, ist für Systeme geeignet, die direkt ans Internet angeschlossen sind. Systeme, die ihre E-Mails per UUCP austauschen wollen, müssen eine andere Konfigurationsdatei installieren.</para> <para>Die manuelle Bearbeitung von <filename>/etc/mail/sendmail.cf</filename> ist nur etwas für Puristen. Sendmail Version 8 bietet die neue Möglichkeit der Generierung von Konfigurationsdateien über eine Vorverarbeitung mit &man.m4.1;, wobei die tatsächliche, händische Konfiguration auf einer höheren Abstraktionsstufe stattfindet. Sie sollten die Konfigurationsdateien unter <filename>/usr/src/usr.sbin/sendmail/cf</filename> benutzen. Die Datei <filename>README</filename> im Verzeichnis <filename>cf</filename> kann zur grundlegenden Einführung in die &man.m4.1;-Konfiguration dienen.</para> <para>Zur Zustellung über UUCP sind Sie am besten damit beraten, die <filename>mailertable</filename>-Datenbank zu benutzen. Mit dieser Datenbank ermittelt <application>sendmail</application> mit welchem Protokoll und wohin eine E-Mail zugestellt werden soll.</para> <para>Zunächst müssen Sie Ihre <filename>.mc</filename>-Datei erstellen. Das Verzeichnis <filename>/usr/share/sendmail/cf/cf</filename> ist die Basis für diese Dateien. Sehen Sie sich um, es gibt bereits einige Beispiele. Wenn Sie Ihre Datei <filename>foo.mc</filename> genannt haben, müssen Sie die folgenden Befehle ausführen, um sie in eine gültige <filename>sendmail.cf</filename> umzuwandeln:</para> <screen>&prompt.root; <userinput>cd /etc/mail</userinput> &prompt.root; <userinput>make foo.cf</userinput> &prompt.root; <userinput>cp foo.cf /etc/mail/sendmail.cf</userinput></screen> <para>Eine typische <filename>.mc</filename>-Datei könnte so aussehen:</para> <programlisting>VERSIONID(`<replaceable>Your version number</replaceable>') OSTYPE(bsd4.4) FEATURE(accept_unresolvable_domains) FEATURE(nocanonify) FEATURE(mailertable, `hash -o /etc/mail/mailertable') define(`UUCP_RELAY', <replaceable>your.uucp.relay</replaceable>) define(`UUCP_MAX_SIZE', 200000) define(`confDONT_PROBE_INTERFACES') MAILER(local) MAILER(smtp) MAILER(uucp) Cw <replaceable>your.alias.host.name</replaceable> Cw <replaceable>youruucpnodename.UUCP</replaceable></programlisting> <para>Die Einstellungen <literal>accept_unresolvable_domains</literal>, <literal>nocanonify</literal> und <literal>confDONT_PROBE_INTERFACES</literal> werden die Benutzung von DNS bei der Zustellung von Mails verhindern. Die Klausel <literal>UUCP_RELAY</literal> wird aus seltsamen Gründen benötigt – fragen Sie nicht, warum. Setzen Sie dort einfach den Namen eines Hosts ein, der in der Lage ist, Adressen mit der Pseudodomäne .UUCP zu behandeln; wahrscheinlich werden Sie dort den Relayhost Ihres ISP eintragen.</para> <para>Wenn Sie soweit sind, müssen Sie die Datei <filename>/etc/mail/mailertable</filename> erzeugen. Hierzu wieder ein typisches Beispiel:</para> <programlisting># # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable # . uucp-dom:<replaceable>your.uucp.relay</replaceable></programlisting> <para>Ein komplexeres Beispiel könnte wie folgt aussehen:</para> <programlisting># # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable # horus.interface-business.de uucp-dom:horus .interface-business.de uucp-dom:if-bus interface-business.de uucp-dom:if-bus .heep.sax.de smtp8:%1 horus.UUCP uucp-dom:horus if-bus.UUCP uucp-dom:if-bus . uucp-dom:</programlisting> <para>Die ersten drei Zeilen behandeln spezielle Fälle, in denen an Domänen adressierte E-Mails nicht über die Standard-Route versendet werden sollen, sondern zu einem UUCP-Nachbarn, um den Zustellweg <quote>abzukürzen</quote>. Die nächsten Zeilen behandeln E-Mails an Rechner in der lokalen Domain. Diese Mails können direkt per SMTP zugestellt werden. Schließlich werden die UUCP-Nachbarn in der Notation mit der Pseudodomäne .UUCP aufgeführt, um die Standardregeln mit <literal><replaceable>uucp-neighbour</replaceable>!<replaceable>recipient</replaceable></literal> zu überschreiben. Die letzte Zeile besteht stets aus einem einzelnen Punkt, der als Ihr Universalgateway in die Welt dient. Alle Knoten hinter dem Schlüsselwort <literal>uucp-dom:</literal> müssen gültige UUCP-Nachbarn sein, was Sie mit dem Befehl <literal>uuname</literal> überprüfen können.</para> <para>Als Erinnerung daran, dass diese Datei in eine DBM-Datenbankdatei konvertiert werden muss, bevor sie benutzt werden kann, sollte der Befehl hierzu als Kommentar am Anfang der <filename>mailertable</filename> plaziert werden. Sie müssen den Befehl jedes Mal ausführen, wenn Sie die <filename>mailertable</filename> geändert haben.</para> <para>Abschließender Hinweis: Wenn Sie unsicher sind, ob bestimmte Zustellwege funktionieren, erinnern Sie sich an die Option <option>-bt</option> von <application>sendmail</application>. Sie startet <application>sendmail</application> im <emphasis>Adress-Testmodus</emphasis>; geben Sie einfach <literal>3,0</literal>, gefolgt von der Adresse, für die Sie den Zustellweg testen möchten, ein. Die letzte Zeile nennt Ihnen den benutzten Mailagenten, den Zielhost, mit dem dieser Agent aufgerufen wird und die (möglicherweise übersetzte) Adresse. Verlassen Sie diesen Modus, indem Sie <keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>D</keycap> </keycombo> eingeben.</para> <screen>&prompt.user; <userinput>sendmail -bt</userinput> ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> <prompt>></prompt> <userinput>3,0 foo@example.com</userinput> canonify input: foo @ example . com ... parse returns: $# uucp-dom $@ <replaceable>your.uucp.relay</replaceable> $: foo < @ example . com . > <prompt>></prompt> <userinput>^D</userinput></screen> </sect1> <sect1 id="outgoing-only"> <sect1info> <authorgroup> <author> <firstname>Bill</firstname> <surname>Moran</surname> <contrib>Beigetragen von </contrib> </author> </authorgroup> </sect1info> <title>Ausgehende E-Mail über einen Relay versenden</title> <para>In vielen Fällen wollen Sie E-Mail nur über einen Relay verschicken. Zum Beispiel:</para> <itemizedlist> <listitem> <para>Sie wollen von Ihrem Arbeitsplatz Programme wie &man.send-pr.1; benutzen. Dazu soll der Relay Ihres ISPs verwendet werden.</para> </listitem> <listitem> <para>Ein Server, der E-Mails nicht selbst verarbeitet, soll alle E-Mails zu einem Relay schicken.</para> </listitem> </itemizedlist> <para>So ziemlich jeder <acronym>MTA</acronym> kann diese Aufgaben erfüllen. Leider ist es oft schwierig, einen vollwertigen <acronym>MTA</acronym> so zu konfigurieren, dass er lediglich ausgehende E-Mails weiterleitet. Es ist übertrieben, Programme wie <application>sendmail</application> und <application>postfix</application> nur für diesen Zweck einzusetzen.</para> <para>Weiterhin kann es sein, dass die Bestimmungen Ihres Internetzugangs es verbieten, einen eigenen Mail-Server zu betreiben.</para> <para>Um die hier beschriebenen Anforderungen zu erfüllen, installieren Sie einfach den Port <filename role="package">mail/ssmtp</filename>. Führen Sie dazu als <username>root</username> die nachstehenden Befehle aus:</para> <screen>&prompt.root; <userinput>cd /usr/ports/mail/ssmtp</userinput> &prompt.root; <userinput>make install replace clean</userinput></screen> <para>Nach der Installation konfigurieren Sie <filename role="package">mail/ssmtp</filename> mit den folgenden vier Zeilen in <filename>/usr/local/etc/ssmtp/ssmtp.conf</filename>:</para> <programlisting>root=yourrealemail@example.com mailhub=mail.example.com rewriteDomain=example.com hostname=_HOSTNAME_</programlisting> <para>Stellen Sie sicher, dass Sie eine gültige E-Mail-Adresse für <username>root</username> verwenden. Geben Sie für <hostid role="fqdn">mail.example.com</hostid> den Mail-Relay Ihres ISPs an (einige ISPs nennen den Relay <quote>Postausgangsserver</quote> oder <quote>SMTP-Server</quote>).</para> <para>Deaktivieren Sie <application>sendmail</application> indem Sie in <filename>/etc/rc.conf</filename> <literal>sendmail_enable="NONE"</literal> angeben.</para> <para><filename role="package">mail/ssmtp</filename> verfügt über weitere Optionen. Die Musterkonfiguration in <filename>/usr/local/etc/ssmtp</filename> oder die Hilfeseite von <application>ssmtp</application> enthalten weitere Beispiele.</para> <para>Wenn Sie <application>ssmtp</application> wie hier beschrieben eingerichtet haben, funktionieren Anwendungen, die E-Mails von Ihrem Rechner verschicken. Sie verstoßen damit auch nicht gegen Bestimmungen Ihres ISPs und laufen nicht in Gefahr, dass Ihr Rechner zum Versenden von Spams missbraucht wird.</para> </sect1> <sect1 id="SMTP-dialup"> <title>E-Mail über Einwahl-Verbindungen</title> <para>Wenn Sie eine feste IP-Adresse haben, müssen Sie die Standardeinstellungen wahrscheinlich gar nicht ändern. Stellen Sie Ihren Hostnamen entsprechend Ihrem zugeordneten Internetnamen ein und <application>sendmail</application> übernimmt das Übrige.</para> <para>Wenn Sie eine dynamische IP-Adresse haben und eine <application>PPP</application>-Wählverbindung zum Internet benutzen, besitzen Sie wahrscheinlich eine Mailbox auf dem Mailserver Ihres ISPs. Lassen Sie uns annehmen, die Domäne ihres ISPs sei <hostid role="domainname">example.net</hostid> und Ihr Benutzername <username>user</username>; außerdem nehmen wir an, dass Sie Ihre Maschine <hostid role="fqdn">bsd.home</hostid> genannt haben und, dass Ihr ISP ihnen gesagt hat, dass Sie <hostid role="fqdn">relay.example.net</hostid> als Mail-Relayhost benutzen können.</para> <para>Um Mails aus Ihrer Mailbox abzuholen, müssen Sie ein gesondertes Programm installieren; <application>fetchmail</application> ist eine gute Wahl, weil es viele verschiedene Protokolle unterstützt. Das Programm können Sie als Paket oder von der Ports-Sammlung (<filename role="package">mail/fetchmail</filename>) installieren. Für gewöhnlich wird von Ihrem <acronym>ISP</acronym> <acronym>POP</acronym> zur Verfügung gestellt. Falls Sie sich dafür entschieden haben, User-<acronym>PPP</acronym> zu benutzen, können Sie durch folgenden Eintrag in der Datei <filename>/etc/ppp/ppp.linkup</filename> Ihre Mails automatisch abholen lassen, wenn eine Verbindung zum Netz aufgebaut wird:</para> <programlisting>MYADDR: !bg su user -c fetchmail</programlisting> <para>Falls Sie (wie unten gezeigt) <application>sendmail</application> benutzen, um Mails an nicht-lokale Benutzer zu versenden, fügen Sie den Befehl</para> <programlisting>!bg su user -c "sendmail -q"</programlisting> <para>nach dem oben gezeigten Eintrag ein. Das veranlasst <application>sendmail</application>, Ihre ausgehenden Mails zu verarbeiten, sobald eine Verbindung zum Internet aufgebaut wird.</para> <para>Nehmen wir an, dass auf <hostid role="fqdn">bsd.home</hostid> ein Benutzer <username>user</username> existiert. Erstellen Sie auf <hostid role="fqdn">bsd.home</hostid> im Heimatverzeichnis von <username>user</username> die Datei <filename>.fetchmailrc</filename>:</para> <programlisting>poll example.net protocol pop3 fetchall pass MySecret;</programlisting> <para>Diese Datei sollte für niemandem außer <username>user</username> lesbar sein, weil sie das Passwort <literal>MySecret</literal> enthält.</para> <para>Um Mails mit dem richtigen <literal>from:</literal>-Header zu versenden, müssen Sie <application>sendmail</application> mitteilen, dass es <email>user@example.net</email> und nicht <email>user@bsd.home</email> benutzen soll. Eventuell möchten Sie auch, dass <application>sendmail</application> alle Mails über <hostid role="fqdn">relay.example.net</hostid> versendet, um eine schnellere Übertragung von Mails zu gewährleisten.</para> <para>Die folgende <filename>.mc</filename>-Datei sollte ausreichen:</para> <programlisting>VERSIONID(`bsd.home.mc version 1.0') OSTYPE(bsd4.4)dnl FEATURE(nouucp)dnl MAILER(local)dnl MAILER(smtp)dnl Cwlocalhost Cwbsd.home MASQUERADE_AS(`example.net')dnl FEATURE(allmasquerade)dnl FEATURE(masquerade_envelope)dnl FEATURE(nocanonify)dnl FEATURE(nodns)dnl define(`SMART_HOST', `relay.example.net') Dmbsd.home define(`confDOMAIN_NAME',`bsd.home')dnl define(`confDELIVERY_MODE',`deferred')dnl</programlisting> <para>Im vorherigen Abschnitt finden Sie Details dazu, wie Sie aus dieser <filename>.mc</filename>-Datei eine Datei <filename>sendmail.cf</filename> erstellen können. Vergessen Sie auch nicht, <application>sendmail</application> neu zu starten, nachdem Sie <filename>sendmail.cf</filename> verändert haben.</para> </sect1> <sect1 id="SMTP-Auth"> <sect1info> <authorgroup> <author> <firstname>James</firstname> <surname>Gorham</surname> <contrib>Geschrieben von </contrib> </author> </authorgroup> </sect1info> <title>SMTP-Authentifizierung</title> <para>Ein Mail-Server, der <acronym>SMTP</acronym>-Authentifizierung verwendet, bietet einige Vorteile. Die erforderliche Authentifizierung erhöht die Sicherheit von <application>sendmail</application> und Benutzer, die auf wechselnden entfernten Rechnern arbeiten, können denselben Mail-Server verwenden ohne Ihr Benutzerprogramm jedes Mal neu zu konfigurieren.</para> <procedure> <step> <para>Installieren Sie den Port <filename role="package">security/cyrus-sasl2</filename>. Der Port verfügt über einige Optionen, die während der Übersetzung festgelegt werden. Für die in diesem Abschnitt beschriebene Methode zur SMTP-Authentifizierung muss die Option <option>LOGIN</option> aktiviert werden.</para> </step> <step> <para>Editieren Sie nach der Installation von <filename role="package">security/cyrus-sasl2</filename> die Datei <filename>/usr/local/lib/sasl2/Sendmail.conf</filename> (erstellen Sie die Datei, wenn sie nicht existiert) und fügen Sie die folgende Zeile hinzu:</para> <programlisting>pwcheck_method: saslauthd</programlisting> </step> <step> <para>Danach installieren Sie den Port <filename role="package">security/cyrus-sasl2-saslauthd</filename>, und fügen die folgende Zeile in <filename>/etc/rc.conf</filename> ein:</para> <programlisting>saslauthd_enable="YES"</programlisting> <para>Zuletzt müssen Sie noch den saslauthd-Daemon starten:</para> <screen>&prompt.root; <userinput>/usr/local/etc/rc.d/saslauthd start</userinput></screen> <para>Dieser Daemon agiert als Broker zwischen <application>sendmail</application> und Ihrer FreeBSD-<filename>passwd</filename>-Datenbank. Dadurch müssen zum Versenden von E-Mails keine zusätzlichen Accounts und Passwörter angelegt werden. Die Benutzer verwenden dasselbe Passwort zum Anmelden wie zum Verschicken von E-Mails.</para> </step> <step> <para>Fügen Sie jetzt in <filename>/etc/make.conf</filename> die nachstehenden Zeilen hinzu:</para> <programlisting>SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL SENDMAIL_LDFLAGS=-L/usr/local/lib SENDMAIL_LDADD=-lsasl2</programlisting> <para>Beim Übersetzen von <application>sendmail</application> werden damit die <filename role="package">cyrus-sasl2</filename>-Bibliotheken benutzt. Stellen Sie daher vor dem Übersetzen von <application>sendmail</application> sicher, dass der Port <filename role="package">cyrus-sasl2</filename> installiert ist.</para> </step> <step> <para>Übersetzen Sie <application>sendmail</application> mit den nachstehenden Kommandos:</para> <screen>&prompt.root; <userinput>cd /usr/src/lib/libsmutil</userinput> &prompt.root; <userinput>make cleandir && make obj && make</userinput> &prompt.root; <userinput>cd /usr/src/lib/libsm</userinput> &prompt.root; <userinput>make cleandir && make obj && make</userinput> &prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail</userinput> &prompt.root; <userinput>make cleandir && make obj && make && make install</userinput></screen> <para><application>sendmail</application> sollte sich ohne Probleme übersetzen lassen, wenn die Dateien in <filename>/usr/src</filename> nicht verändert wurden und die benötigten Bibliotheken installiert sind.</para> </step> <step> <para>Nachdem Sie <application>sendmail</application> installiert haben, editieren Sie <filename>/etc/mail/freebsd.mc</filename> beziehungsweise die verwendete <filename>.mc</filename>-Datei. Viele Administratoren verwenden die Ausgabe von &man.hostname.1;, um der <filename>.mc</filename>-Datei einen eindeutigen Namen zu geben. Fügen Sie die folgenden Zeilen in die <filename>.mc</filename>-Datei ein:</para> <programlisting>dnl set SASL options TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl</programlisting> <para>Diese Anweisungen konfigurieren die Methoden, die <application>sendmail</application> zur Authentifizierung verwendet. Lesen Sie die mitgelieferte Dokumentation, wenn Sie eine andere Methode als <option>pwcheck</option> verwenden wollen.</para> </step> <step> <para>Abschließend rufen Sie &man.make.1; im Verzeichnis <filename>/etc/mail</filename> auf. Damit wird aus der <filename>.mc</filename>-Datei eine neue <filename>.cf</filename>-Datei (zum Beispiel <filename>freebsd.cf</filename>) erzeugt. Das Kommando <command>make install restart</command> installiert die Datei nach <filename>/etc/mail/sendmail.cf</filename> und startet <application>sendmail</application> neu. Weitere Informationen entnehmen Sie bitte <filename>/etc/mail/Makefile</filename>.</para> </step> </procedure> <para>Wenn alles funktioniert hat, tragen Sie in Ihrem Mail-Benutzerprogramm das Passwort für die Authentifizierung ein und versenden Sie zum Testen eine E-Mail. Wenn Sie Probleme haben, setzen Sie den <option>LogLevel</option> von <application>sendmail</application> auf <literal>13</literal> und untersuchen die Fehlermeldungen in <filename>/var/log/maillog</filename>.</para> <para>Weitere Information erhalten Sie im WWW auf der <ulink url="http://www.sendmail.org/~ca/email/auth.html">Webseite von <application>sendmail</application></ulink>.</para> </sect1> <sect1 id="mail-agents"> <sect1info> <authorgroup> <author> <firstname>Marc</firstname> <surname>Silver</surname> <contrib>Beigetragen von </contrib> </author> </authorgroup> </sect1info> <title>E-Mail-Programme</title> <indexterm> <primary>Mail-User-Agents</primary> </indexterm> <indexterm> <primary>E-Mail-Programme</primary> </indexterm> <para>Anwendungen, die E-Mails versenden und empfangen, werden als E-Mail-Programme oder Mail-User-Agents (<acronym>MUA</acronym>) bezeichnet. Mit der Entwicklung und Ausbreitung von E-Mail wachsen auch die E-Mail-Programme und bieten Benutzern mehr Funktionen und höhere Flexibilität. Unter &os; laufen zahlreiche E-Mail-Programme, die Sie alle mit der <link linkend="ports">&os; Ports-Sammlung</link> installieren können. Sie können wählen zwischen Programmen mit grafischer Benutzeroberfläche, wie <application>evolution</application> oder <application>balsa</application>, konsolenorientierten Programmen wie <application>mutt</application>, <application>alpine</application> oder <command>mail</command>, oder auch Programmen mit Web-Schnittstellen, die von einigen großen Institutionen benutzt werden.</para> <sect2 id="mail-command"> <title>mail</title> <para>Das standardmäßig unter &os; installierte E-Mail-Programm ist &man.mail.1;. Das Programm ist konsolenorientiert und enthält alle Funktionen, die zum Versand und Empfang textbasierter E-Mails erforderlich sind. Allerdings lassen sich Anhänge mit <command>mail</command> nur schwer bearbeiten und kann <command>mail</command> kann nur auf lokale Postfächer zugreifen.</para> <para><command>mail</command> kann nicht direkt auf <acronym>POP</acronym>- oder <acronym>IMAP</acronym>-Server zugreifen. Entfernte Postfächer können aber mit einer Anwendung wie <application>fetchmail</application> in die lokale Datei <filename>mbox</filename> geladen werden. <application>fetchmail</application> wird später in diesem Kapitel besprochen (<xref linkend="mail-fetchmail"/>).</para> <para>Um E-Mails zu versenden oder zu empfangen, starten Sie einfach <command>mail</command> wie im nachstehenden Beispiel:</para> <screen>&prompt.user; <userinput>mail</userinput></screen> <para>Das Werkzeug <command>mail</command> liest automatisch den Inhalt des Benutzer-Postfachs im Verzeichnis <filename class="directory">/var/mail</filename>. Sollte das Postfach leer sein, beendet sich <command>mail</command> mit der Nachricht, dass keine E-Mails vorhanden sind. Wenn das Postfach gelesen wurde, wird die Benutzeroberfläche gestartet und eine Liste der E-Mails angezeigt. Die E-Mails werden automatisch nummeriert wie im folgenden Beispiel gezeigt:</para> <screen>Mail version 8.1 6/6/93. Type ? for help. "/var/mail/marcs": 3 messages 3 new >N 1 root@localhost Mon Mar 8 14:05 14/510 "test" N 2 root@localhost Mon Mar 8 14:05 14/509 "user account" N 3 root@localhost Mon Mar 8 14:05 14/509 "sample"</screen> <para>Einzelne Nachrichten können Sie jetzt mit dem <command>mail</command>-Kommando <keycap>t</keycap> gefolgt von der Nummer der Nachricht lesen. Im nachstehenden Beispiel lesen wir die erste E-Mail:</para> <screen>& <userinput>t 1</userinput> Message 1: From root@localhost Mon Mar 8 14:05:52 2004 X-Original-To: marcs@localhost Delivered-To: marcs@localhost To: marcs@localhost Subject: test Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST) From: root@localhost (Charlie Root) Das ist eine Test-Nachricht. Antworte bitte!</screen> <para>Die Taste <keycap>t</keycap> zeigt die Nachricht zusammen mit dem vollständigen Nachrichtenkopf an. Wenn Sie die Liste der E-Mails erneut sehen wollen, drücken Sie die Taste <keycap>h</keycap>.</para> <para>Um auf eine E-Mail zu antworten, benutzen Sie im Programm <command>mail</command> entweder die Taste <keycap>R</keycap> oder die Taste <keycap>r</keycap>. Mit der Taste <keycap>R</keycap> weisen Sie <command>mail</command> an, dem Versender der Nachricht zu antworten. Mit der Taste <keycap>r</keycap> antworten Sie nicht nur dem Versender sondern auch allen Empfängern der Nachricht. Sie können zusammen mit diesen Kommandos eine Zahl angeben, um die E-Mail, auf die Sie antworten wollen, auszusuchen. Wenn Sie den Befehl abgesetzt haben, schreiben Sie Ihre Antwort und beenden die Eingabe mit einem einzelnen Punkt (<literal>.</literal>) auf einer neuen Zeile. Den Vorgang zeigt das nachstehende Beispiel:</para> <screen>& <userinput>R 1</userinput> To: root@localhost Subject: Re: test <userinput>Danke, ich habe deine E-Mail erhalten. .</userinput> EOT</screen> <para>Neue E-Mails können Sie mit der Taste <keycap>m</keycap> verschicken. Geben Sie dabei die E-Mail-Adresse des Empfängers an. Sie können auch mehrere durch Kommata (<literal>,</literal>) getrennte Empfänger angeben. Geben Sie dann den Betreff (<foreignphrase>subject</foreignphrase>) der Nachricht gefolgt von der Nachricht selbst ein. Schließen Sie die Nachricht mit einem einzelnen Punkt (<literal>.</literal>) auf einer neuen Zeile ab.</para> <screen>& <userinput>mail root@localhost</userinput> Subject: <userinput>Ich habe die E-Mails im Griff! Jetzt kann ich E-Mails versenden und empfangen ... :) .</userinput> EOT</screen> <para>Die Taste <keycap>?</keycap> zeigt zu jeder Zeit einen Hilfetext an. Wenn Sie weitere Hilfe benötigen, lesen Sie bitte die Hilfeseite &man.mail.1;.</para> <note> <para>Wie vorhin gesagt, wurde das Programm &man.mail.1; nicht für den Umgang mit Anhängen entworfen und kann daher sehr schlecht mit Anhängen umgehen. Neuere <acronym>MUA</acronym>s wie <application>mutt</application> gehen wesentlich besser mit Anhängen um. Sollten Sie dennoch das <command>mail</command>-Kommando benutzen wollen, werden Sie den Port <filename role="package">converters/mpack</filename> sehr zu schätzen wissen.</para> </note> </sect2> <sect2 id="mutt-command"> <title>mutt</title> <para><application>mutt</application> ist ein schlankes aber sehr leistungsfähiges E-Mail-Programm mit hervorrangenden Funktionen, unter anderem:</para> <itemizedlist> <listitem> <para><application>mutt</application> kann den Verlauf einer Diskussion (<foreignphrase>threading</foreignphrase>) darstellen.</para> </listitem> <listitem> <para>Durch die Integration von PGP können E-Mails signiert und verschlüsselt werden.</para> </listitem> <listitem> <para>MIME wird unterstützt.</para> </listitem> <listitem> <para>Postfächer können im Maildir-Format gespeichert werden.</para> </listitem> <listitem> <para><application>mutt</application> lässt sich im höchsten Maße an lokale Bedürfnisse anpassen.</para> </listitem> </itemizedlist> <para>Wegen des Funktionsumfangs ist <application>mutt</application> eins der ausgefeiltesten E-Mail-Programme. Mehr über <application>mutt</application> erfahren Sie auf der Seite <ulink url="http://www.mutt.org"></ulink>.</para> <para>Der Port <filename role="package">mail/mutt</filename> enthält die Produktionsversion von <application>mutt</application>, die aktuelle Entwicklerversion befindet sich im Port <filename role="package">mail/mutt-devel</filename>. Wenn <application>mutt</application> installiert ist, wird das Programm mit dem nachstehenden Kommando gestartet:</para> <screen>&prompt.user; <userinput>mutt</userinput></screen> <para><application>mutt</application> liest automatisch den Inhalt des Benutzer-Postfachs im Verzeichnis <filename class="directory">/var/mail</filename>. Wenn E-Mails vorhanden sind, werden diese dargestellt. Sind keine E-Mails vorhanden, wartet <application>mutt</application> auf Benutzereingaben. Das folgende Beispiel zeigt, wie <application>mutt</application> eine Nachrichten-Liste darstellt:</para> <mediaobject> <imageobject> <imagedata fileref="mail/mutt1" format="PNG"/> </imageobject> </mediaobject> <para>Wenn Sie eine Nachricht lesen wollen, wählen Sie die Nachricht einfach mit den Pfeiltasten aus und drücken <keycap>Enter</keycap>. <application>mutt</application> zeigt E-Mails wie folgt an:</para> <mediaobject> <imageobject> <imagedata fileref="mail/mutt2" format="PNG"/> </imageobject> </mediaobject> <para>Wenn Sie auf eine E-Mail antworten, können Sie, wie in &man.mail.1;, aussuchen, ob Sie nur dem Versender oder auch allen Empfängern antworten wollen. Wenn Sie nur dem Versender antworten wollen, drücken Sie die Taste <keycap>r</keycap>. Wenn sie dem Versender und allen Empfängern antworten wollen, drücken Sie die Taste <keycap>g</keycap>.</para> <note> <para>Zum Erstellen oder zum Beantworten von E-Mails ruft <application>mutt</application> den Editor &man.vi.1; auf. Wenn Sie den von <application>mutt</application> verwendeten Editor ändern möchten, erstellen oder editieren Sie in Ihrem Heimatverzeichnis die Datei <filename>.muttrc</filename>. Den Editor können Sie in <filename>.muttrc</filename> mit der Variablen <literal>editor</literal> festlegen. Alternativ können Sie auch die Umgebungsvariable <envar>EDITOR</envar> setzen. Weitere Informationen zur Konfiguration von <application>mutt</application> finden Sie unter <ulink url="http://www.mutt.org/"></ulink>.</para> </note> <para>Drücken Sie die Taste <keycap>m</keycap>, wenn Sie eine neue Nachricht verfassen wollen. Nachdem Sie einen Betreff (<foreignphrase>subject</foreignphrase>) eingegeben haben, startet <application>mutt</application> den Editor &man.vi.1; und Sie können die Nachricht eingeben. Wenn Sie fertig sind, speichern Sie die Nachricht und verlassen den Editor. <application>mutt</application> wird dann wieder aktiv und zeigt eine Zusammenfassung der zu sendenden Nachricht an. Drücken Sie <keycap>y</keycap>, um die E-Mail zu versenden. Der nachstehende Bildschirmabzug zeigt die Zusammenfassung der E-Mail:</para> <mediaobject> <imageobject> <imagedata fileref="mail/mutt3" format="PNG"/> </imageobject> </mediaobject> <para><application>mutt</application> verfügt über eine umfangreiche Hilfestellung. Aus fast jedem Menü können Sie Hilfeseiten mit der Taste <keycap>?</keycap> aufrufen. In der oberen Statuszeile werden zudem die verfügbaren Tastenkombinationen angezeigt.</para> </sect2> <sect2 id="alpine-command"> <title>alpine</title> <para><application>alpine</application> wendet sich an Anfänger bietet aber ebenfalls einige Funktionen für Profis.</para> <warning> <para>In der Vergangenheit wurden in <application>alpine</application> mehrere Schwachstellen gefunden. Die Schwachstellen gestatteten entfernten Benutzern, durch das Versenden einer besonders verfassten E-Mail, Programme auf dem lokalen System laufen zu lassen. Alle <emphasis>bekannten</emphasis> Schwachstellen sind beseitigt worden, doch wird im Quellcode von <application>alpine</application> ein sehr riskanter Programmierstil verwendet, sodass der &os;-Security-Officer von weiteren unbekannten Schwachstellen ausgeht. Sie installieren <application>alpine</application> auf eigene Verantwortung!</para> </warning> <para>Der Port <filename role="package">mail/alpine</filename> enthält die aktuelle Version von <application>alpine</application>. Nach der Installation können Sie <application>alpine</application> mit dem nachstehenden Kommando starten:</para> <screen>&prompt.user; <userinput>alpine</userinput></screen> <para>Wenn Sie <application>alpine</application> das erste Mal starten, zeigt das Programm eine Seite mit einer kurzen Einführung an. Um die <application>alpine</application>-Benutzer zu zählen, bitten die Entwickler auf dieser Seite um eine anonyme E-Mail. Sie können diese anonyme E-Mail senden, indem Sie <keycap>Enter</keycap> drücken oder den Begrüßungsbildschirm mit der Taste <keycap>E</keycap> verlassen, ohne die anonyme E-Mail zu senden. Der Begrüßungsbildschirm sieht wie folgt aus:</para> <mediaobject> <imageobject> <imagedata fileref="mail/pine1" format="PNG"/> </imageobject> </mediaobject> <para>Nach dem Begrüßungsbildschirm wird das Hauptmenü dargestellt, das sich leicht mit den Pfeiltasten bedienen lässt. Mit Tastenkombinationen können Sie aus dem Hauptmenü neue E-Mails erstellen, Postfächer anzeigen und auch das Adressbuch verwalten. Unterhalb des Menüs werden die Tastenkombinationen für die verfügbaren Aktionen angezeigt.</para> <para>In der Voreinstellung öffnet <application>pine</application> das Verzeichnis <filename class="directory">inbox</filename>. Die Taste <keycap>I</keycap> oder der Menüpunkt <guimenuitem>MESSAGE INDEX</guimenuitem> führt zu einer Nachrichten-Liste:</para> <mediaobject> <imageobject> <imagedata fileref="mail/pine2" format="PNG"/> </imageobject> </mediaobject> <para>Die Liste zeigt die Nachrichten im Arbeitsverzeichnis. Sie können Nachrichten mit den Pfeiltasten markieren. Wenn Sie eine Nachricht lesen wollen, drücken Sie <keycap>Enter</keycap>.</para> <mediaobject> <imageobject> <imagedata fileref="mail/pine3" format="PNG"/> </imageobject> </mediaobject> <para>Im nächsten Bildschirmabzug sehen Sie, wie <application>pine</application> eine Nachricht darstellt. Die unteren Bildschirmzeilen zeigen die verfügbaren Tastenkombinationen. Mit der Taste <keycap>r</keycap> können Sie zum Beispiel auf die gerade angezeigte Nachricht antworten.</para> <mediaobject> <imageobject> <imagedata fileref="mail/pine4" format="PNG"/> </imageobject> </mediaobject> <para>Zum Antworten auf eine E-Mail wird in <application>pine</application> der Editor <application>pico</application>, der mit installiert wird, benutzt. <application>pico</application> ist leicht zu bedienen und gerade für Anfänger besser geeignet als &man.vi.1; oder &man.mail.1;. Die Antwort wird mit der Tastenkombination <keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>X</keycap> </keycombo> versendet. Vor dem Versand bittet <application>pine</application> noch um eine Bestätigung.</para> <mediaobject> <imageobject> <imagedata fileref="mail/pine5" format="PNG"/> </imageobject> </mediaobject> <para>Über den Menüpunkt <guimenuitem>SETUP</guimenuitem> des Hauptmenüs können Sie <application>pine</application> an Ihre Bedürfnisse anpassen. Erläuterungen dazu finden Sie auf der Seite <ulink url="http://www.washington.edu/pine/"></ulink>.</para> </sect2> </sect1> <sect1 id="mail-fetchmail"> <sect1info> <authorgroup> <author> <firstname>Marc</firstname> <surname>Silver</surname> <contrib>Beigetragen von </contrib> </author> </authorgroup> </sect1info> <title>E-Mails mit fetchmail abholen</title> <indexterm> <primary>fetchmail</primary> </indexterm> <para><application>fetchmail</application> ist ein vollwertiger <acronym>IMAP</acronym>- und <acronym>POP</acronym>-Client. Mit <application>fetchmail</application> können Benutzer E-Mails von entfernten <acronym>IMAP</acronym>- und <acronym>POP</acronym>-Servern in leichter zugängliche lokale Postfächer laden. <application>fetchmail</application> wird aus dem Port <filename role="package">mail/fetchmail</filename> installiert. Das Programm bietet unter anderem folgende Funktionen:</para> <itemizedlist> <listitem> <para><application>fetchmail</application> beherrscht die Protokolle <acronym>POP3</acronym>, <acronym>APOP</acronym>, <acronym>KPOP</acronym>, <acronym>IMAP</acronym>, <acronym>ETRN</acronym> und <acronym>ODMR</acronym>.</para> </listitem> <listitem> <para>E-Mails können mit <acronym>SMTP</acronym> weiterverarbeitet werden. Dadurch ist garantiert, dass Filter, Weiterleitungen und Aliase weiterhin funktionieren.</para> </listitem> <listitem> <para>Das Programm kann als Dienst laufen und periodisch neue Nachrichten abrufen.</para> </listitem> <listitem> <para><application>fetchmail</application> kann mehrere Postfächer abfragen und je nach Konfiguration die E-Mails an verschiedene lokale Benutzer zustellen.</para> </listitem> </itemizedlist> <para>Wegen des Funktionsumfangs von <application>fetchmail</application> können hier nur grundlegende Funktionen beschrieben werden. <application>fetchmail</application> benötigt die Konfigurationsdatei <filename>.fetchmailrc</filename>. In dieser Datei werden Informationen über Server wie auch Benutzerdaten und Passwörter hinterlegt. Wegen des kritischen Inhalts von <filename>.fetchmailrc</filename> sollte die Datei nur lesbar für den Benutzer sein:</para> <screen>&prompt.user; <userinput>chmod 600 .fetchmailrc</userinput></screen> <para>Die folgende <filename>.fetchmailrc</filename> zeigt, wie das Postfach eines einzelnen Benutzers mit <acronym>POP</acronym> heruntergeladen wird. <application>fetchmail</application> wird angewiesen, eine Verbindung zu <hostid role="fqdn">example.com</hostid> herzustellen und sich dort als Benutzer <username>joesoap</username> mit dem Passwort <literal>XXX</literal> anzumelden. Das Beispiel setzt voraus, dass es der Benutzer <username>joesoap</username> auch auf dem lokalen System existiert.</para> <programlisting>poll example.com protocol pop3 username "joesoap" password "XXX"</programlisting> <para>Im folgenden Beispiel werden mehrere <acronym>POP</acronym>- und <acronym>IMAP</acronym>-Server benutzt. Wo notwendig, werden E-Mails auf andere lokale Konten umgeleitet:</para> <programlisting>poll example.com proto pop3: user "joesoap", with password "XXX", is "jsoap" here; user "andrea", with password "XXXX"; poll example2.net proto imap: user "john", with password "XXXXX", is "myth" here;</programlisting> <para>Sie können <application>fetchmail</application> als Dienst starten. Verwenden Sie dazu die Kommandozeilenoption <option>-d</option> gefolgt von einer Zeitspanne in Sekunden, die angibt, wie oft die Server aus der Datei <filename>.fetchmailrc</filename> abgefragt werden sollen. Mit dem nachstehenden Befehl fragt <application>fetchmail</application> die Server alle 600 Sekunden ab:</para> <screen>&prompt.user; <userinput>fetchmail -d 600</userinput></screen> <para>Mehr über <application>fetchmail</application> erfahren Sie auf der Seite <ulink url="http://fetchmail.berlios.de/"></ulink>.</para> </sect1> <sect1 id="mail-procmail"> <sect1info> <authorgroup> <author> <firstname>Marc</firstname> <surname>Silver</surname> <contrib>Beigetragen von </contrib> </author> </authorgroup> </sect1info> <title>E-Mails mit procmail filtern</title> <indexterm> <primary>procmail</primary> </indexterm> <para>Mit <application>procmail</application> lässt sich eingehende E-Mail sehr gut filtern. Benutzer können Regeln für eingehende E-Mails definieren, die E-Mails zu anderen Postfächern oder anderen E-Mail-Adressen umleiten. <application>procmail</application> befindet sich im Port <filename role="package">mail/procmail</filename>. <application>procmail</application> kann leicht in die meisten <acronym>MTA</acronym>s integriert werden. Lesen Sie dazu bitte die Dokumentation des verwendeten <acronym>MTA</acronym>s. Alternativ kann <application>procmail</application> in das E-Mail-System eingebunden werden, indem die nachstehende Zeile in die Datei <filename>.forward</filename> im Heimatverzeichnis eines Benutzers eingefügt wird:</para> <programlisting>"|exec /usr/local/bin/procmail || exit 75"</programlisting> <para>Im Folgenden zeigen wir einige einfache <application>procmail</application>-Regeln und beschreiben kurz den Zweck der Zweck der Regeln. Die Regeln müssen in die Datei <filename>.procmailrc</filename> im Heimatverzeichnis des Benutzers eingefügt werden.</para> <para>Den Großteil dieser Regeln finden Sie auch in der Hilfeseite &man.procmailex.5;.</para> <para>Alle E-Mail von <email>user@example.com</email> an die externe Adresse <email>goodmail@example2.com</email> weiterleiten:</para> <programlisting>:0 * ^From.*user@example.com ! goodmail@example2.com</programlisting> <para>Alle Nachrichten, die kürzer als 1000 Bytes sind, an <email>goodmail@example2.com</email> weiterleiten:</para> <programlisting>:0 * < 1000 ! goodmail@example2.com</programlisting> <para>Jede E-Mail, die an <email>alternate@example.com</email> geschickt wurde, im Postfach <filename>alternate</filename> speichern:</para> <programlisting>:0 * ^TOalternate@example.com alternate</programlisting> <para>Jede E-Mail, die im Betreff <literal>Spam</literal> enthält, nach <filename>/dev/null</filename> schieben:</para> <programlisting>:0 ^Subject:.*Spam /dev/null</programlisting> <para>Zuletzt ein nützliches Rezept, das eingehende E-Mails von den <hostid role="domainname">&os;.org</hostid>-Mailinglisten in ein separates Postfach für jede Liste einsortiert:</para> <programlisting>:0 * ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG { LISTNAME=${MATCH} :0 * LISTNAME??^\/[^@]+ FreeBSD-${MATCH} }</programlisting> </sect1> </chapter>