[ 
https://issues.apache.org/jira/browse/JAMES-3742?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17518810#comment-17518810
 ] 

Paul Chown commented on JAMES-3742:
-----------------------------------

Super, thanks! I missed that you have your own superclass. I added a copy of 
this class to our project and patched the setHeader() method:
{code:java}
public void setHeader(String name, String value) throws MessagingException {
    checkModifyHeaders();
    if (!name.equals(MIME_VERSION_HEADER) || getHeader(MIME_VERSION_HEADER) == 
null) {
        super.setHeader(name, value);
    }
} {code}
That fixes our problem.

> MIME-Version header is changed, breaking DKIM signatures
> --------------------------------------------------------
>
>                 Key: JAMES-3742
>                 URL: https://issues.apache.org/jira/browse/JAMES-3742
>             Project: James Server
>          Issue Type: Bug
>          Components: James Core
>    Affects Versions: 2.3.2
>            Reporter: Paul Chown
>            Priority: Major
>
> We are using James to forward mails from external email servers to customer 
> accounts.
> Some email clients create emails with the following headers:
> {noformat}
> Mime-Version: 1.0 (Mac OS X Mail 15.0 \(3693.60.0.1.1\))
> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
>         d=xxxx.gappssmtp.com; s=20210112;
>         
> h=from:content-transfer-encoding:mime-version:subject:message-id:date:to;
>         bh=...;
>         b=...{noformat}
> So the message is signed by the originator including the {{Mime-Version}} 
> header. The problem is that if we set an additional header with 
> {{SetMimeHeaderHandler}} or invoke the SpamAssassin service then the method 
> {{MimeMessage.updateHeaders()}} is invoked which sets a new mime version 
> header:
> {noformat}
> MIME-Version: 1.0{noformat}
> thereby breaking the DKIM signature from the original sender. We can add our 
> own signature using the new header, but this isn't aligned with the sender 
> domain so it doesn't help. It's probably debatable whether the original Mac 
> mail client mime version header is valid, but it is what it is.
> This seems to be completely broken, but the behaviour is baked into the 
> {{MimeMessage}} class and we can't see any way around it. How can we preserve 
> the original mime-version header and the DKIM signature?



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to