[ Megoldva ] Exim invalid autoreply

Egy Exim 4 szerveren be van állítva a vacation transport, autoreply driverrel.

A probléma az, hogy az automatikus válasznak üres a sender értéke, emiatt az SPF validációkon fennakadnak ezek a levelek.

Semmilyen olyan paramétrét nem találom az autoreply drivernek, amivel a sendert (nem a from-ot) be lehetne állítani. Mivel ez nem kerül bele a levél header részébe, még az egyedi header megadása sem segíthet.

Van erre valakinek ötlete, hogy hogyan lehetne Eximmel valid automatikus válaszokat generálni?

Megoldás: autoreply levelek esetén a remote_smtp router-be kell egy plusz "return_path = $h_from" sor.

Hozzászólások

mail commanddal a filter file-ban:

mail

    from $local_part\@$domain

    to $reply_address

...

neked aztan fura humorod van...

A dokumentáció szerint a filter fájl az "address_reply" transportert hívja meg, és ez egy dirver=autoreply transporter, pont olyan, mint amit én is használok. A from és a to itt - gondolom - a filter fájlból jön, nálam a transporterben van megadva, de ez ugyanannak a funkciónak tűnik.

Mivel most minden adatbázisból jön, csak akkor állnék neki átvariálni fájlba, ha ez tényleg segít.

Te ezt használod? Így nálad lesz értéke a sender-nek küldéskor?

ennyire most nem neztem meg, csak itt lattam, hogy a filter fajlban mail vagy vacation command, ennek megorultem, mert en is mail commanddal csinaltam:

https://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_autore…

kb. 15 eve csinaltam, router driver=redirect-el, bar vagy 10 eve nem hasznalom.

neked aztan fura humorod van...

Köszönöm. A dokumentáció legalább egyértelműen fogalmaz:

"messages created by the autoreply transport always have empty envelope sender addresses, like bounce messages"

Vagyis az exim definíció szerint nem képes valid automatikus választ generálni az automatikus válasz moduljával ...

Nem semmi!

Próbáltam helyettesíteni az autoreply-t egy pipe transporterrel, de ez esetben meg a $h_subject értékét nem tudom átadni a scriptnek, mert tainted ... :(

Végül ráfanyalodtam az AI-ra, azonban mindkettő csak működésképtelen ostobaságokat mondott, jórészt olyan tanácsokkal, amik hibát okoztak.

Végül azonban megszületett egy működőképes megoldás: a remote_smtp transporterbe kell egy "return_path: $h_from" sor.

Mivel ez minden kimenő levél esetén aktív lenne, és félek, hogy a bounce üzeneteknél talán mégsem véletlen az üres Sender, ezért létrehoztam egy új transportert "remote_smtp_autoreply" néven, ami a "remote_smtp" másolata, csak kibővítve a

return_path = $h_from

sorral. Valamint a "dnslookup" router elé beillesztettem egy új routert kifejezetten az autoreply leveleknek, ami ugyanaz, mint a dnslookup, csak a következő sorral ki van bővítve:

condition = ${if and { {def:h_Auto-Submitted:} {eq {$h_Auto-Submitted:}{auto-replied}} }}

és természetesen a transporter sora módosult:

transport = remote_smtp_autoreply

Így már az autoreply leveleknél is van megfelelő Sender.