Debian und Ubuntu Mails via Gmail (Google Mail) versenden. So wird der Exim Mail Server richtig konfiguriert
Manchmal erfordern ungewöhnliche Anforderungen ebenso ungewöhnliche Lösungen. So wurde uns als Anforderung gestellt, dass sämtliche Emails von einem Webserver via Gmail Smarthost weitergesendet werden sollen. Der Kunde hat einen „Google Apps for Business“ Account und möchte diesen auch verwenden um Mails, welche an den localhost übergeben werden, über das definierte Emailkonto zu versenden. Die Variante funktioniert übrigens auch mit einer kostenlosen Gmail Adresse.
Exim neu konfigurieren:
Der Exim Mailserver lässt sich relativ unproblematisch über eine Assistenten konfigurieren, welcher für unser Vorhaben völlig ausreicht. Zum Starten des Assistenten wird ein Terminal Fenster geöffnet und folgender Befehl abgesetzt. (Wer nicht als root User arbeitet, sollte ein sudo davor setzen)
[bash]dpkg-reconfigure exim4-config[/bash]1. mail sent by smarthost; received via SMTP or fetchmail
2. System Mail Name definieren (FQDN) zB: server1.sysadminslife.com
3. SMTP nur auf den localhost beschränken um Zugriffe durch externe zu vermeiden. (127.0.0.1: ::1)
4. Other destinations for wich mail is accepted: keine
5. Machines to relay mail for: keine
6. IP adress or host name of the outgoing smarthost: smtp.gmail.com::587
7. Hide local mail name in outgoing mail? No
8. Keep number of DNS-queries minimal (Dial-on-Demand)? No
9. Delivery method for local mail: mbox format in /var/mail
10. Split configuration info small files? No
Google Mail Konto definieren
Da die Konfiguration von Exim nun abgeschlossen ist, wird noch das entsprechende Google Konto benötigt, welches zum Versand verwendet werden soll. Dazu wird die Datei /etc/exim4/passwd.client editiert…
[bash]vi /etc/exim4/passwd.client[/bash]… und die folgende Zeile hinzugefügt: („DeineMailAdresse@gmail.com“ und „DeinGmailPasswort“ entsprechend ersetzen)
[bash]*.google.com:DeineMailAdresse@gmail.com:DeinGmailPasswort[/bash]Die Exim Konfiguration muss nur noch aktualisiert werden
[bash]update-exim4.conf[/bash]Exim -> Gmail Weiterleitung testen
Mit folgendem Befehl wird ein Email generiert und an die angeführte Email Adresse versendet:
[bash]echo ‚Mail Test erfolgreich!‘ | mail -s ‚Exim -> Gmail SMTP Testmail‘ meinemailadresse@domain.com[/bash]Nun kann in dem Postfach nachgesehen werden ob das Email auch angekommen ist.
[sam id=“2″ codes=“true“]Exim Troubleshooting
Falls es zu Problemen kommen sollte, oder das Testmail nicht ankommt, so ist es sinnvoll in der Logfile nachzusehen:
[bash]tail /var/log/exim4/mainlog[/bash]Hier sollten entsprechende Fehlermeldungen auftauchen.
Danke für die Anleitung! Anmerkung: Bei mir war es Port 587. https://support.google.com/mail/answer/13287?hl=en Grüße Markus
Hallo Markus,
danke für den Hinweis! Natürlich ist der Port 587 und nicht 586! Das war ein Tippfehler von meiner Seite! Habe den Artikel nun korrekterweise aktualisiert.
Gruß
Patrick
Kleiner Tipp zur Sicherheit:
chown root:Debian-exim /etc/exim4/passwd.client
chmod 640 /etc/exim4/passwd.client
Soll ja nicht jeder in die Datei reinsehen können 😉
Nimm das am besten mit ins Tutorial auf.
Hallo,
vielen Dank für die Anleitung. Entsprechend dieser Anleitung wurde exim4 konfiguriert.
Beim Start von exim4 wird eine Alert.Meldung ausgegeben:
ALERT: exim paniclog /var/log/exim4/paniclog has non-zero size, mail system possibly broken
Zusätzlich ist der Mailversand fehlgeschlagen:
R=smarthost T=remote_smtp_smarthost: SMTP error from remote mail server after MAIL FROM: SIZE=2523: host smtp.web.de [213.165.67.108]: 530 Authentication required
Im vorliegenden Fall sollte eine Testmail über ein bestehenden web.de-Account versandt werden.
Hallo,
der Fehler lag darin, dass zum einen in der Frage 3: (SMTP-Adresse) nur eine IP-V4 Angabe aktiviert werden darf, und zum anderen in der Datei
/etc/exim4/exim4.conf.template
ein Eintrag „disable_ipv6=true“ eingetragen werden muss.
Zusätzlich muss vor dem Neustart des exim4 services die Datei /var/log/exim4/mainlog gelöscht werden muss. Andernfalls wird beim Start immer wieder eine panic-Alert Meldung ausgegeben.
Beim Versandt Akzeptieren viele eMail-Provider nicht mehr eine beliebigen Absender Email-Adresse. Diese muss über den Parameter „-r“ angegeben werden:
echo ‚Mail Test erfolgreich!‘ | mail -r AbsenderMail@Mail.de -s ‚Exim -> Gmail SMTP Testmail‘ EmpfängerMail@Mail.de
Dann klappt auch ein Email-Versand.
Hallo, der lokale versand von meinem Rechner auf welchem exim läuft funktioniert prima, wenn ich jedoch von einem anderen Client (in meinem Fall ein HP Digitalsender) die Mail sende funktioniert es nicht. Bekomme noch nicht mal einen Eintrag in /var/log/exim4/mainlog. Hat jemand eine Idee?
Wie kann ich das beheben?
Cannot start „/usr/sbin/sendmail“: executable not found (adjust *sendmail* variabl
e)
„/root/dead.letter“ 6/158
… message not sent