Exim autentikált felhasználó és a levél feladója

Hello,

Azt szeretném elérni, hogy csak azzal a "feladó" címmel tudjon a felhasználó levelet küldeni, amivel azonosította magát. Egy ilyen szabályt hoztam össze:


deny message = A felado cime elutasitva
condition = ${if eq {$authenticated_sender}{${lc:$sender_address}}{no}{yes}}

Ezzel az a probléma, hogy az $authenticated_sender tartalma valamiért üres, és így az összes levelet eldobálja.


90873 expanding: $authenticated_sender
90873 result:
90873 expanding: $sender_address
90873 result: TesztBela@mydomain.tld

A szabályt egyébként az acl_smtp_rcpt-n belül adtam meg. Az azonosítás 465-ös porton keresztül történik.

Van valakinek ötlete, hogy mit csinálok rosszul?

Hozzászólások

ez furcsa lenne...

nekem működik úgy, hogy

acl_smtp_auth = acl_check_auth

acl_check_auth:

warn set acl_m_authsenderid = ${if eq{$authenticated_id}{} {}{$authenticated_id@xyz.hu}}

accept

begin transports

remote_smtp:
driver = smtp
headers_add = ${if !eq{$acl_m_authsenderid}{} {X-Authenticated-Sender: $acl_m_authsenderid}{}}
serialize_hosts = *

szóval nem acl-re használjuk, hanem ez alapján headert töltünk ki, de nagyon meglepődnék, ha ugyanezt a változó nem tudnánk acl-ben is használni.

Az authentikacio rendben van, megtortenik:

91239 expanding: ${if ldapauth {user="cn=${quote_ldap_dn:${local_part:$1}},ou=mail,o=mydomain.tld" pass=${quote:$2} ldap://localhost/}{yes}{no}}
91239 result: yes
91239 expanded string: yes
91239 SMTP>> 235 Authentication succeeded

Az szamithat valamit, hogy milyen az authenticator? Mert csak a LOGIN, illetve a PLAIN van beallitva.

tpz

Gyanús nekem ez az üres dolog. Nem lehet, hogy az authenticator rész rossz?
Gondolok itt arra, hogy auth plain esetén a _második_ paraméter tartalmazza az user id-t, auth login esetén az _első_. Ennek megfelelően az authenticator megfelelő szekciójában egy jól elhelyezett server_set_id sor is kell.

ldap_plain:
driver = plaintext
public_name = PLAIN
server_prompts = User Name:: : Password::
server_condition = Not Public...
server_set_id = $auth2

ldap_login:
driver = plaintext
public_name = LOGIN
server_prompts = User Name:: : Password::
server_condition = Not public...
server_set_id = $auth1

Igen, azzal már futottam egy rövid kört. Jól gondolom, hogy a server_set_id nélkül soha nem is fog tartalmazni semmit az authenticated_id? ;)


LOGIN:
driver = plaintext
public_name = LOGIN
server_prompts = Username:: : Password::
server_condition = ${if ldapauth {user="cn=${quote_ldap_dn:${local_part:$1}},ou=mail,o=mydomain.tld" pass=${quote:$2} ldap://localhost/}{yes}{no}}

PLAIN:
driver = plaintext
public_name = PLAIN
server_prompts = :
server_condition = ${if ldapauth {user="cn=${quote_ldap_dn:${local_part:$2}},ou=mail,o=mydomain.tld" pass=${quote:$3} ldap://localhost/}{yes}{no}}

tpz