james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Luc DUZAN (JIRA)" <server-...@james.apache.org>
Subject [jira] [Created] (JAMES-2191) CLI: add commands to manage MailRepository and mail reprocessing
Date Wed, 18 Oct 2017 09:43:00 GMT
Luc DUZAN created JAMES-2191:

             Summary: CLI:  add commands to manage MailRepository and mail reprocessing
                 Key: JAMES-2191
                 URL: https://issues.apache.org/jira/browse/JAMES-2191
             Project: James Server
          Issue Type: New Feature
          Components: CLI
    Affects Versions: 3.0.0, master
            Reporter: Luc DUZAN
         Attachments: james_workflow.png

When James receive an email, firstly it's get queue into the mail queue that handle all received
SMTP mail. Then it go to the Mailet pipeline after that either it processing worked (mailbox,
resent to remote, etc...) either it failed. When the processing of a mail failed, it can bounce
(SMTP send a error message to the source) or it get stocked in a mail repository waiting to
be deleted or to get re-queue for retry:

On James 2 because file was the only implementation available for the mail queue and the mail
repository, it was possible for the user to reprocess failed email by copying them from the
mail repository folder into the mail queue folder. But this was a bad practice because it
is linked to the file system implementation of the mail queue and the mail repository.

Now that James 3 have multiple implementations, there is no way (except the experimental `FromRepository`
mailet) to reprocess failed mails.

We should therefore add some commands to our CLI interface. Here is an overview of the minimum
sets of commands that should be done:

* `ReprocessAllMails <repositoryPath>`:  it will take all the mails from the repository
designed by the given path and move them to the message queue

* `ReprocessMail <repositoryPath> <emailKey>`:  it will look for the email having
the given key in the repository designed by the repository path and move it to the message

* `ListMailRepository` list (by giving paths) all the message repositories

* `ListMailsInRepository <repositoryPath>` list all mails present in a mail repository

* `GetMailInRepository <repositoryPath> <emailKey>`

* `DeleteMailInRepository <repositoryPath> <emailKey>`

* `DeleteMailsInRepository <repositoryPath>`: delete all the mail in the given repository

This message was sent by Atlassian JIRA

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

View raw message