Re: Seemingly eligible mails not getting DKIM signed

Christian Balzer via Exim-users <[email protected]> Wed, 10 Jun 2026 18:07:56 +0900
Newsgroups gmane.mail.exim.user
Organization Rakuten Communications
Message-ID <[email protected]>
On Wed, 10 Jun 2026 08:11:06 +0100 Jeremy Harris via Exim-users wrote:

> On 2026/06/10 7:37 AM, Christian Balzer via Exim-users wrote:
> > All of them had long (1000+ characters) and broken (split in the
> > middle of an id) References: like this:
> > ---
> > <unbroken> <delugeofids> <[email protected]  
> > 	om>  
> > ---
> > 
> > Which is a known issue with this (EOL) mail client.  
> 
> That does feel like it (the total length, not the line-wrap) might
> be an item triggering a bug in Exim.  Even though that's an out-of-spec
> header, it'd be good to do something more visible with it, if so...
> 
> You could check it in the data ACL, with
>    condition = ${if > {${strlen:$h_References}} {1000}}
> and trigger debug at that point.
> 
I will give that a spin tomorrow once I'm more capable of dealing with
curly brackets as this by itself results in badness:
---
failed to expand ACL string "${if > {${strlen:$h_References}} {1000}}": missing 2nd string in {} after ">"
---

For your amusement and edification, this same mail client is also the main
source of unset dkim_domain, the header From: is either not RFC compliant
or Exim has issues with the encoding.

Example:
---
Warning: DKIM is set to:  , extracted from -j%0%s%5%s\033(B <[email protected]>
---

The actual line was (sans address)
-> From: =?iso-2022-jp?B?GyRCLWolMCVzJTUlcxsoQg==?= 

And before you ask, I use this to parse the header From: (and it works for
basically everybody not using this client or some ancient custom mailer).
---
DKIM_DOMAIN = ${if def:h_from:{${lc:${domain:${address:$h_from:}}}}{$qualify_domain}}
---

This is likely the clients fault more than anything, but as mentioned
rspamd "correctly" determines that actual addresses in header and envelope
are indeed identical.

> 
> > acl_check_data:
> > 
> >   # What is it that we are supposed to sign?
> >   warn  log_message = DKIM is set to: DKIM_DOMAIN  
> 
> Note that this is only displaying some values (as given, macros - but
> perhaps you are ofuscating) in the receive processing.  It does not says
> that we went on to transmit outbound using the transport you expect, nor
> what the options on that transport were.
> 

All 3 "remote smtp" type transports here have this and the ONLY thing that
can (and will) potentially fail is the dkim_domain.
---
  dkim_domain = DKIM_DOMAIN
  dkim_selector = DKIM_SELECTOR
  dkim_private_key = DKIM_PRIVATE_KEY
  dkim_canon = relaxed
  dkim_strict = 0
---

Thanks again for the feedback!

Christian

> 
> > I wonder which fallout would NOT signing References: at all
> > would cause  
> 
> A workaround only, but worth trying.  We could at least make it specific
> to either the sender(s) or that header length (if that does turn out to
> be the trigger), using a suitable expansion for the dkim_sign_headers
> option.
> -- 
> Cheers,
>    Jeremy
> 
> -- 
> ## subscription configuration (requires account):
> ##   https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
> ## unsubscribe (doesn't require an account):
> ##   [email protected]
> ## Exim details at https://www.exim.org/
> ## Please use the Wiki with this list - https://code.exim.org/exim/wiki/wiki
> 


-- 
Christian Balzer        Network/Systems Engineer & Architect               
[email protected]   	Rakuten Mobile Inc.

-- 
## subscription configuration (requires account):
##   https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
##   [email protected]
## Exim details at https://www.exim.org/
## Please use the Wiki with this list - https://code.exim.org/exim/wiki/wiki