[[Getestet(general)]] {{{#!Wissen * [1]: [:Pakete installieren: Installation von Programmen] * [2]: [:Terminal: Ein Terminal öffnen] * [3]: [:Editor: Einen Editor öffnen] }}} [[TableOfContents(2)]] = Einleitung = Damit ein Linux Rechner direkt Emails verschicken kann, muss ein MTA ([http://de.wikipedia.org/wiki/Mail_Transfer_Agent Mail Transfer Agent] {de} ) installiert und konfiguriert sein. Der Klassiker unter den MTA ist sendmail, dieser ist jedoch sehr umständlich zu konfigurieren, deshalb hat sich Postfix zum Standard entwickelt. Im Prinzip könnte man den Postfix-Server aufsetzen und gleich Emails verschicken. Doch leider ist das im Zeitalter von Spam nicht mehr so einfach. Ein SMTP-Server ohne eine feste IP und ohne ordentliche Zertifikate wäre eine ideale Spam-Schleuder. Deshalb aktzeptiert eigentlich kein Email-Server Emails von solchen Servern. Man muss daher die eigenen Emails über einen "ordentlichen" SMTP Server wie z.B. den von web.de und Co. leiten. Für ortsgebundene Rechner bietet sich der Server des eigenen Internet Service Providers an, da dieser meistens keine zusätzliche Authentifizierung erfordert. = Installation = Es muss eigentlich nur ein Paket installiert [1] werden * '''postfix''' * '''mailx''' - Optional, um über die Konsole mit dem Befehl '''mail''' Mails verschicken zu können = Konfiguration = Anschließend wird man gleich zur Konfiguration von Postfix geleitet. Nur bei drei Fragen muss man von den vorgegebenen Standards abweichen: {{{#!Text General type of configuration? -> Satellite system Where should mail for root go? -> Dein Username SMTP relay host? -> smtp.mailanbieter.de }}} Je nach Ubuntu-Version sehen diese Fragen etwas anders aus. Der wichtigste Punkt ist immer der SMTP-Server. Hat man sich in der Konfiguration vertan, kann man diese im Terminal [2] mit {{{#!Befehl sudo dpkg-reconfigure postfix }}} wiederholen. Danach ist die erste Konfiguration von Postfix abgeschlossen. Diese wird in der Datei /etc/postfix/main.cf hinterlegt. == Authentifizierung == Wenn der SMTP-Server zum Versenden der Mail ein Passwort verlangt, muss die eben erstellte Konfiguration '''/etc/postfix/main.cf''' allerdings noch einmal editiert [3] und diese Zeilen eingefügt werden: {{{#!Text # Sofern man sich gegen einen externen SMTP-Server authentifizieren # muss, sind nachfolgende Zeilen notwendig. smtp_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_password }}} Wie in der Config ersichtlich holt Postfix die Zugangsdaten aus der Datei '''/etc/postfix/sasl_password''' bzw. aus einer Datenbank, die aus der sasl_password generiert wird; diese muss daher in dieser Art erstellt werden {{{#!Text smtp.mailanbieter.de username:ganzgeheimespasswort }}} Jetzt muss noch die Datenbank erzeugt werden. Dazu muss man ein Terminalfenster öffnen [2] und den Befehl {{{#!Befehl sudo postmap /etc/postfix/sasl_password }}} ausführen. Danach muss man postfix neu starten: {{{#!Befehl sudo /etc/init.d/postfix restart }}} == Test == Jetzt kann man z.B. mit mail aus dem Paket mailx eine Email verschicken. Der Befehl dazu sieht im Prinzip so aus {{{#!Befehl mail -s "testbetreff" email@addresse.de < textdatei.txt }}} = Postfix für GMX einrichten = Wer Emails über einen GMX Email Account schicken möchte, muss leider noch etwas mehr Arbeit investieren. Schaut man in die Datei '''/var/log/mail.log''', findet man häufig etwas dergleichen vor: {{{#!Text ...from=... ...status=bounced ...Cannot resolve your domain (in reply to MAIL FROM command)) }}} Wobei `$MAILNAME$` der String ist, den man beim Konfigurieren von Postfix unter ''Mailname'' angegeben hat. Manchmal findet man aber auch Folgendes: {{{#!Text ... status=bounced ... Sender address does not belong to logged in user ... This server does not accept an empty envelope from }}} Um mit Postfix auch über GMX Emails versenden zu können, muss man nun einige zusätzliche Schritte ausführen. == main.cf == In der '''/etc/postfix/main.cf''' muss man einige Einträge editieren. Eine Beispieldatei findet man [http://www.ubuntuusers.de/paste/1208/ hier], damit man einen Überblick bekommt. Die wichtigsten Befehle: * Zeile 27ff: canonical und sender_canonical werden benötigt, um die FROM-Adresse für GMX umzuschreiben, siehe unten * Zeile 31ff: Diese Werte sind wichtig, damit man später die korrekten Einträge in den canonoical Dateien machen kann * Zeile 49ff: Diese smtp-Konfigurationen sollte man setzen, ggf. könnten die oben genannten Werte ausreichen, probiert's aus! * '''Achtung''': Zeile 60 muss man den korrekten Pfad angeben. Wenn man diesem Artikel gefolgt ist, müsste dort ''smtp_sasl_password_maps = hash:/etc/postfix/sasl_password'' stehen. == sasl_password == In der sasl_password sollte man die die nicht die GMX Benutzer-ID angeben, sondern gleich die GMX Email-Adresse. {{{#!Text mail.gmx.net email.adresse@gmx.net }}} Nicht vergessen mit postmap die Datenbank erneut zu erstellen! == sender_canonical == Viele Email-Anbieter erwarten inzwischen, dass man seine Post mit "richtigen" Absenderadressen verschickt - also nicht ''ich@localhost'' oder ''user@meinrechner''. GMX geht sogar so weit, nur die eigene, korrekte GMX-Adresse zu akzeptieren. Deshalb muss man '''Postfix''' beibringen, die lokalen Adressen durch die gewünschte offizielle zu ersetzen. Folgende Zeile muss man dafür in die Datei '''/etc/postfix/main.cf''' einfügen: {{{#!Text sender_canonical_maps = hash:/etc/postfix/sender_canonical }}} Dann erstellt man in einem Editor mit Root-Rechten [3] die Datei '''/etc/postfix/sender_canonical''' mit beliebig vielen Zuordnungen, z.B.: {{{#!Text benutzer email.adresse@gmx.net www-data beispiel@example.com root email.adresse@gmx.net }}} Zu guter letzt erstellt man auch aus dieser Datei eine '''Postfix'''-Datenbank und lädt die '''Postfix'''-Konfiguration im Terminal [2] neu: {{{#!Befehl sudo postmap /etc/postfix/sender_canonical sudo /etc/init.d/postfix restart }}} Jetzt sollte man eine Email senden (z.B. über '''mail()''' in PHP, oder aber über '''mail''' im Terminal) und danach die Datei '''/var/log/mail.log''' durchlesen und überprüfen ob alles geklappt hat. Hoffentlich steht nun am Ende der Datei dieses: {{{#!Text ...from=... ...to=,... status=sent... Message accepted }}} = Links = * [http://www.postfix.org/ Postfix Homepage] {en} * [http://de.wikipedia.org/wiki/Postfix_(Mail_Transfer_Agent) Postfix bei Wikipedia] {de} * [http://www.postfix-howto.de/ Deutsches Postfix Howto] {de} * [http://de.wikibooks.org/wiki/Postfix Postfix bei Wikibooks] {de} * [http://www.contentschmiede.de/archiv/2005/08/26/postfix_fuer_typo3_und_gmx_fit_machen/ Postfix für GMX fit machen bei ContentSchmiede] {de} ---- * ["Kategorie/Internet"] * ["Kategorie/Netzwerk"] * ["Kategorie/Server"]