Exim4 und SMTP-AUTH für mehrere Smarthosts

M

myp

Grünschnabel
Hi!

Also nachdem ich hier nun schon ca 2 Wochen an dem Mailserver rumbastel und wahrscheinlich schon den Wald vor lauter Bäumen nicht mehr sehe und das Problem nicht finde will ich hier nun mal ein paar Fragen stellen. Beim ewigen Suchen in Internet bin ich bis jetzt noch auf keine Antworten für meine Fragen gestossen oder hab die Antwort vielleicht einfach nicht als solche identifizieren können.

Wenn ich z.B. sowas habe:
Code:
smarthost_gmx:
  condition = ${if eq {${lc:$sender_address_domain}} {gmx.de} {true} fail }
  driver = manualroute
  domains = ! +local_domains
  transport = remote_smtp
  route_list = "* mail.gmx.net byname"

remote_smtp:
  debug_print = "T: remote_smtp for $local_part@$domain"
  driver = smtp
  hosts_try_auth = ${if exists {CONFDIR/passwd.client}{mail.gmx.net}{}}

Wie Authentifiziert sich das Ding dann genau beim SMTP-Server? Unten an der exim4.conf.template sind cram_md5, plain und login. Nimmt der dann einfach was von denen was ihm gefällt oder macht der was ganze anderes? Kann ich irgendwie spezifizieren was er genau für eine SMTP-AUTH-Methode nehmen soll? Dazu sei noch gesagt das ich mehrere Smarhosts habe und nicht jeder alle Methoden unterstützt und somit auch nicht jeder also die gleiche nehmen soll/kann.

Nun noch zu was anderem. Ich habe auch einen Account bei Yahoo und der unterstützt nur plain und login und zwar ohne TLS wie es aussieht. Das erste Problem ist nun, dass die SMTP-AUTH-Methode login scheinbar garkeine Daten aus meiner passwd.client bekommt. Denn immer wenn ich eine Mail versenden will steht im Log "authentication failure" oder sowas. Wenn ich nun aber anstatt der Methode die Benutzername und Passwort aus der passwd.client auslesen soll direkt meinen Benutzernamen und mein Passwort hinschreibe funktioniert der Versand von Mails.

Code:
smarthost_yahoo:
  condition = ${if eq {${lc:$sender_address_domain}} {yahoo.de} {true} fail }
  driver = manualroute
  domains = ! +local_domains
  transport = remote_smtp_yahoo
  route_list = "* smtp.mail.yahoo.com byname"

remote_smtp_yahoo:
  debug_print = "T: remote_smtp for $local_part@$domain"
  driver = smtp
  hosts_try_auth = ${if exists {CONFDIR/passwd.client}{smtp.mail.yahoo.com}{}}

So funktioniert es:
login:
  driver = plaintext
  public_name = LOGIN
#  client_send = "${if !eq{$tls_cipher}{}{}fail}\
#                 : ${extract{1}{::}\
#                   {${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}} \
#                : ${extract{2}{::}\
#                    {${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}"

client_send = ": <Benutzername> : <Passwort>"

So funktioniert es nicht:
login:
  driver = plaintext
  public_name = LOGIN
#  client_send = "${if !eq{$tls_cipher}{}{}fail}\
#                 : ${extract{1}{::}\
#                       {${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}} \
#                : ${extract{2}{::}\
#                    {${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}"

  client_send = ": ${extract{1}{::}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}: ${extract{2}{::}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}"

Auschnitt wie die Sache mit Yahoo in der passwd.client steht:
smtp.mail.yahoo.com:<Benutzername>:<Passwort>

Der obere auskommentierte Teil von der AUTH-Methode wäre ja mit TLS, deswegen ist er auskommentiert, da Yahoo ja kein TLS unterstützt. Die Alternative ohne TLS steht so als Beispiel in der Config.
Nun noch eine Frage dazu: Wenn ich das Ding mit TLS nun auskommentiere und das ohne TLS nehme, dann nimmt er doch immer ohne TLS, oder? Kann ich das auch irgendwie machen das er mir die AUTH-Methode Login nur für Yahoo ohne TLS nimmt und für andere Smarthosts die TLS unterstützen mit TLS?

Auf dem System läuft Debian Sarge mit Kernel 2.6.12

Hoffe das ihr mir vielleicht bei den Problemen/Fragen weiterhelfen könnt.

Gruß
myp
 

Ähnliche Themen

dovecot und postfix Konfiguration Problem

CentOS 6.3 RADIUS - Keine Verbindung möglich

Squid nur zum maskieren der eigenen IP, nicht für Webserver auf port 80

Pure-ftpd mit Postgre

Apache zu langsam ?

Zurück
Oben