To main content

Caff mit MTA korrekt einstellen

Veröffentlicht von Benjamin Marwell am

In einem anderen Artikel (en) habe ich flüchtig erklärt, wie man caff mit SMTP schnell konfigurieren kann. Eleganter ist jedoch ein lokaler Mail Transfer Agent (MTA).

Sicher fällt einem sofort nach der Konfiguration von $CONFIG{'mailer-send'} die Warnmeldung auf:

Warnung bei $CONFIG{'mailer-send'}

Setting this option is strongly discouraged. Fix your local MTA instead.

Ein sehr berechtigter Einwand. Aber die Meldung sollte endlich weg, also hab ich mich mal rangesetzt und recherchiert. Anbei eine Anleitung für Google Mail (gmail).

Installation

Installiert man unter Ubuntu das Paket von caff, so wird standardmäßig exim4 als MTA installiert. Einfacher macht man es sich doch mit Postfix. Also installiert man:

sudo aptitude install signing-party postfix libsasl2-modules exim4_ mailx

Damit entfernt man den konkurrierenden MTA exim4, falls vorhanden. Stattdessen soll ja Postfix genutzt werden. Dieser wird nun konfiguriert:

Konfigurationsassistenten für postfix starten
sudo dpkg-reconfigure postfix

Folgende Fragen sind in der Textkonsole zu beantworten:

General type of configuration?

Satellite System

Where should mail for root go?

<eigene E-Mailadresse> Standardwert lassen, oder wer kennt: DNS-Namen angeben

SMTP relay host?

smtp.gmail.com:587

Für welche weiteren Rechner möchten Sie Mails akzeptieren?

Kann so gelassen werden

Local Networks

Auch den Standardwert stehen lassen

Mails über Google leiten

Nun wird die Einstellung kontrolliert:

+sudo vim /etc/postfix/sasl_password +

Dort trägt man ein:

smtp.gmail.com:587 myMail@gmail.com:Klartextpasswort

Folgende Datei wird für die richtige Absenderkennung editiert:

sudo vim /etc/postfix/sender_canonical

Dort wird eingetragen, welcher Benutzername welche E-Mailadresse bei google hat:

Mapping local user auf E-Mail-Adresse
ben ben@gmail.invalid

Natürlich ersetzt man die E-Mailadresse durch die eigene, es funktionieren übrigens auch E-Mailadressen aus Google Apps mit eigener Domain ganz wunderbar. Damit keiner das Passwort lesen kann, setzen wir noch schnell die Zugriffsrechte der Passwort-Datei um, lesen beide für Postfix ein und starten diesen neu. Der letzte Schritt geht seit Upstart (statt System-V-Init) etwas anders:

sudo chmod 600 /etc/postfix/sasl_password sudo postmap /etc/postfix/sasl_password sudo postmap /etc/postfix/sender_canonical

Damit Postfix die Passwort-und Alias-Datei auch anzieht, muss die /etc/postfix/main.cf noch um wenige Einträge erweitert werden:

smtp_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_password sender_canonical_maps = hash:/etc/postfix/sender_canonical

Zum Schluss wird Postfix noch neu gestartet.

sudo service postfix restart # Restart mit upstart

Mailversand testen

Jetzt sollte schon alles funktionieren:

mail -s "Subject/Betreff" andere@addresse.invalid Hi Empfänger! Dieses ist ein Test, hoffentlich klappt es. :-) .

Der einzelne Punkt auf einer Zeile schließt die Nachricht ab und schickt sie los, alternativ drückt man ^d (Strg + D). Als Empfängeradresse würde ich testhalber eine alte Zweitadresse verwenden, aber prinzipiell kann man auch die Senderadresse nutzen. Hat alles geklappt, erscheint bei Google Mail die gesendete Mail im Ordner "Gesendet". Falls nicht, hilft folgendes:

Fehlerbehebung

Klappt es nicht, lässt man sich die letzten Zeilen des Logs anzeigen:

tail /var/log/mail.info [...][...](SASL authentication failed; server smtp.gmail.com[xx.xxx.xx.xxx] said: 535-5.7.1 Username and Password not accepted. [...]

Hier hat man einen falschen Benutzernamen oder ein falsches Passwort angegeben. Wichtig ist, dass man die E-Mailadresse vollständig eingibt. In Deutschland nimmt man statt @gmail.com möglicherweise @googlemail.com. Andere beliebte Fehler: Man hat mehrere Absenderadressen, und nimmt nicht diejenige, die man zum Login verwendet (betrifft vor allem Google Apps-Nutzer).

Nutzung mit Caff

Jetzt kommentiert man nur noch die Zeile mit $CONFIG{'mailer-send'} aus, und benutzt caff ganz normal weiter.