You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Benoit Tellier (Jira)" <se...@james.apache.org> on 2019/10/07 05:27:00 UTC

[jira] [Created] (JAMES-2913) PerRecipientHeaders are not applied for RemoteDelivery

Benoit Tellier created JAMES-2913:
-------------------------------------

             Summary: PerRecipientHeaders are not applied for RemoteDelivery
                 Key: JAMES-2913
                 URL: https://issues.apache.org/jira/browse/JAMES-2913
             Project: James Server
          Issue Type: Bug
          Components: Remote Delivery, SpoolManager &amp; Processors
    Affects Versions: 3.4.0
            Reporter: Benoit Tellier


Jerry Malcolm reported this on the DEV mailing list:


{code:java}
I noticed in 3.3 that the SpamAssassin mailet changed to support different spamassassin results per recipient in a multi-recipient email.  I understand MailImpl's PerRecipientHeaders.  And I found MailDispatcher's addSpecificHeadersForRecipient(...) that adds the actual headers.  But it appears that MailDispatcher is outbound only.   The per-recipient spamassassin results are analyzed in IsMarkedAsSpam matcher.  No problems with any of that.

Here's my issue... I am adding an option for debug purposes to store additional spamassassin output as headers.  I'm simply adding a few more entries in the PerRecipientHeaders object.  But it appears that the PerRecipientHeaders are not being converted to actual headers on inbound mail.  I figure that's reasonable since spamassassin mailet was the only code adding them, and the spam matcher handles it.  But if any other mailets (or in my case, additions to spamassassin mailet) add PerRecipientHeaders, they are lost.

I know how to convert them to real headers. I can easily make the addition to the code. My concern is that I don't know when they should be added.  This is where it gets muddy for me.  Where in the flow (what class) does an inbound email get split into per-recipient instances?  Obviously, per-recipient headers need to get added 'per recipient/instance' (after the split).

Can someone tell me the recommended class to add any 'per recipient' headers as real headers to an inbound email?  If my understanding is totally wrong, I'm up for some education as well... 
{code}

Clearly, RemoteDelivery should set per-recipient headers before sending the email.

While making that change, we should be carefull about outbound performance degradation this might incurs: mails that do not have per recipient headers SHOULD still be sent within a single SMTP transaction to avoid useless DATA duplication. (We can assume DATA will always be different for mails having custom headers).

We need to write an integration test for this within "server/mailet/integration-tests".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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