On Tue, 29 Apr 2008, Karl Boyken wrote:

; As a solution to the problem of sendmail munging headers after the DKIM
; signature has been calculated, the dkim-milter README suggests routing mail
; between one port, where all the munging occurs, and another port, where
; dkim-milter runs.  I use DaemonPortOptions and am clear about that aspect, but
; I'm scratching my head over the routing bit.  I suspect I'd need to either
; create a LOCAL_RULE_0 or use virtusertable somehow, but I'm not sure about
; specifics yet, and it seems to me there'd be a danger of creating a loop if I
; botched it.  If anyone has some suggestions or examples, or could outline
; potential pitfalls, I'd be grateful.  Thanks.

I'd probably create a queue-group triggered on the daemon name from
DaemonPortOptions, then a LOCAL_RULE_0 to force routing back to localhost
for messages in that queue group. You'll need to use a mailer with the k
flag set for that otherwise Sendmail will detect a loop based on the
HELO/Banner matching.

So, something like the following:

DAEMON_OPTIONS(`Name=MTA')dnl
DAEMON_OPTIONS(`Name=dkim,Addr=..,Port=...')dnl
QUEUE_GROUP(`dkim', `P=/.../../dkim')dnl

MAILER_DEFINITIONS

Mlooprelay,     P=[IPC], F=kmDFMuXa8,
                S=EnvFromSMTP/HdrFromSMTP, R=MasqSMTP, E=\r\n, L=2040,
                T=DNS/RFC822/SMTP,
                A=TCP $h 25


LOCAL_CONFIG

Kstorage macro
C{persistentMacros} {qassignment}

LOCAL_RULESETS

SWhichQueueGroup
# Is the macro already set ?
R$*                     $: $1 $| $&{qassignment}
R$* $| $+               $@ $2
# Was the connection to the dkim MTA?
Rdkim $|               $@ dkim $(storage {qassignment} $@ dkim $)
R$* $|                  $@

# Ruleset to select queue group for incoming messages.
Squeuegroup
R$*                     $: $1 $| $> WhichQueueGroup $&{daemon_name}
R$* $| $+               $#$2
R$* $|                  $#

LOCAL_RULE_0
# Drop back to ruleset 0 if rebuilding aliases
R$*                     $: $1 $| $&{opMode}
R$* $| i                $@ $1
# Drop back to ruleset 0 for unqualified and local addresses
R$- $| $*               $@ $1
R$+ < @ $=w . > $| $*   $@ $1
# Force to localhost for dkim queue group
R$* $| $*               $: $1 $| $> WhichQueueGroup $&{daemon_name}
R$* $| dkim            $#looprelay $@ [localhost] $: $1
# Everything else uses DNS/mailertable
R$* $| $*               $@ $1


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
dkim-milter-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dkim-milter-discuss

Reply via email to