GreatCornholio
New Member
Hallo!
Durch google bin ich auf dieses Forum gestoßen und hoffe, dass mir hier jemand helfen kann.
Und zwar geht es um folgendes:
Ich bin gerade dabei mir für unser Familien-LAN einen kleinen Mailserver aufzusetzen.
Dieser soll Mails von verschiedenen Konten bei verschiedenen Anbietern abholen und in Maildirs von virtuellen Usern verteilen. Dort werden sie dann über IMAP zur Verfügung gestellt. Die Informationen hierfür werden über LDAP verwaltet, damit ich mir die spätere Wartung einfacher mache.
Ich habe hierzu ein LDAP-Schema erstellt, mit dem ich die Benutzerkonten verwalten kann.
Das würde dann für einen Benutzer in etwa so aussehen (Passwörter und Benutzernamen wurden natürlich verändert):
Mit uid und userPassword meldet er sich mit seinem Mailprogramm am Server an, alles was mit "ExtMail" beginnt ist von mir erstellt und dient zum Abholen und Verschicken von Mails.
Diese Konten werden durch ein Bash-Script abgerufen und auf die Postfächer verteilt, das funktioniert soweit schon. Der Zugriff auf die Postfächer mit IMAP funktioniert auch schon.
Aber jetzt zu meinem Problem: Ich will mir einen Smarthost erstellen, der die Mails nach der Absenderadresse dem richtigen Anbieter weiterleitet.
Diesen suche ich mir über ein lookup heraus. Aber irgendwas funktioniert mit der Liste noch nicht ganz...
Wie bekomme ich das hin, das es auch mit dem LDAP-Lookup funktioniert?
Ich bin echt am Verzweifeln und hab schon stundenlang gesucht und alles probiert was ich gefunden habe.
Durch google bin ich auf dieses Forum gestoßen und hoffe, dass mir hier jemand helfen kann.
Und zwar geht es um folgendes:
Ich bin gerade dabei mir für unser Familien-LAN einen kleinen Mailserver aufzusetzen.
Dieser soll Mails von verschiedenen Konten bei verschiedenen Anbietern abholen und in Maildirs von virtuellen Usern verteilen. Dort werden sie dann über IMAP zur Verfügung gestellt. Die Informationen hierfür werden über LDAP verwaltet, damit ich mir die spätere Wartung einfacher mache.
Ich habe hierzu ein LDAP-Schema erstellt, mit dem ich die Benutzerkonten verwalten kann.
Das würde dann für einen Benutzer in etwa so aussehen (Passwörter und Benutzernamen wurden natürlich verändert):
Code:
dn: uid=user1#gmx.net,ou=users,dc=intra,dc=lan
objectClass: uidObject
objectClass: simpleSecurityObject
objectClass: ExtMail
uid: user1#gmx.net
userPassword: geheimesBenutzerpasswort
ExtMailAddress: user1@gmx.net
ExtMailUserName: user1@gmx.net
ExtMailUserPasswd: geheimesMailpasswort
ExtMailReceiveServer: pop.gmx.de
ExtMailReceiveServerType: pop3
ExtMailReceiveServerOptions: keep
ExtMailSendServer: mail.gmx.de
Diese Konten werden durch ein Bash-Script abgerufen und auf die Postfächer verteilt, das funktioniert soweit schon. Der Zugriff auf die Postfächer mit IMAP funktioniert auch schon.
Aber jetzt zu meinem Problem: Ich will mir einen Smarthost erstellen, der die Mails nach der Absenderadresse dem richtigen Anbieter weiterleitet.
Diesen suche ich mir über ein lookup heraus. Aber irgendwas funktioniert mit der Liste noch nicht ganz...
Code:
smarthost_auto:
driver = manualroute
domains = !+local_domains
transport = remote_smtp
# Wenn ich es so schreibe, löst er den lookup nicht auf,
# weil der ":" bei ldap fälschlicherweise als Trenner erkannt wird
route_list = * ${lookup ldap{user=cn=manager,ou=users,dc=intra,dc=lan pass=geheim \
ldap:///ou=users,dc=intra,dc=lan?ExtMailSendServer?sub?(ExtMailAddress=$sender_address)}}
# Das selbe, wenn ich alles in Anführungszeichen setze:
route_list = "* ${lookup ldap{user=cn=manager,ou=users,dc=intra,dc=lan pass=geheim \
ldap:///ou=users,dc=intra,dc=lan?ExtMailSendServer?sub?(ExtMailAddress=$sender_address)}}"
# Den Dopelpunkt durch "::" oder "\:" zu ersetzen hat auch nichts gebracht
# Also hab ich mal das Listentrennzeichen geändert (hab ich in der Doku gefunden).
# Dann löst er zwar den lookup richtig auf, aber das Ergebnis ist nicht verwertbar,
# da er es als [B]einen[/B] string interpretiert und nicht als Liste.
route_list = <;"* ${lookup ldap{user=cn=manager,ou=users,dc=intra,dc=lan pass=geheim \
ldap:///ou=users,dc=intra,dc=lan?ExtMailSendServer?sub?(ExtMailAddress=$sender_address)}}"
# Wenn ich es direkt eintrage funktioniert es wie es soll:
route_list = * mail.gmx.de
Ich bin echt am Verzweifeln und hab schon stundenlang gesucht und alles probiert was ich gefunden habe.