Uploaded image for project: 'James Server'
  1. James Server
  2. JAMES-3588

LMTP + MailetContainer: Propagate errors back to the LMTP client

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

      Description

      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.

      How?

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

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

      Side benefits

      • It allow avoiding ignoring failures of the error processor
      • I allows in a SMTP (asynchronous) execution context to requeue fail mails.

      Unknown

      The management of partial failures will need to be explored.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              btellier Benoit Tellier

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 0.5h
                0.5h

                  Issue deployment