james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benoit Tellier (Jira)" <server-...@james.apache.org>
Subject [jira] [Created] (JAMES-3588) LMTP + MailetContainer: Propagate errors back to the LMTP client
Date Thu, 20 May 2021 03:15:00 GMT
Benoit Tellier created JAMES-3588:
-------------------------------------

             Summary: LMTP + MailetContainer: Propagate errors back to the LMTP client
                 Key: JAMES-3588
                 URL: https://issues.apache.org/jira/browse/JAMES-3588
             Project: James Server
          Issue Type: Improvement
          Components: lmtp, MailStore &amp; MailRepository
            Reporter: Benoit Tellier
             Fix For: 3.7.0


h3. Why?

Today the MailetContainer is thought to be asynchronous, thus need to explicitly handle failures.
The classic way to do this is through 'error' processors, which stores the email in a MailRepository
for potential later processing.

However, in an LMTP execution context it makes sense to escalate the failure to the LMTP client.
That way the client can requeue the email and plan for a later delivery.

h3. How?

We could have a way to propagate the failure back to the caller:

{code:java}
            <mailet match="All" class="ToRepository">
                <repositoryPath>cassandra://var/mail/error/</repositoryPath>
                <onMailetException>propagate</onMailetException>
            </mailet>
{code}

h3. Side benefits

 - It allow avoiding ignoring failures of the error processor

 - I allows in a SMTP (asynchronous) execution context to requeue fail mails.

h3. Unknown

The management of partial failures will need to be explored.



--
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


Mime
View raw message