james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tellier Benoit (JIRA)" <server-...@james.apache.org>
Subject [jira] [Commented] (JAMES-2321) WebAdmin should allow to see more details about Mails
Date Thu, 07 Jun 2018 00:52:00 GMT

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

Tellier Benoit commented on JAMES-2321:
---------------------------------------

Hi Edgar.

Thanks for your involvment in the James project.

We very recently started working on this issue as it is required for some top level feature
we are tasked to implement in my company.

Gauthier, one of my coworkers, proposed a great PR about it here: https://github.com/linagora/james-project/pull/1454

I guess we forgot to update the task as in progress, and I'm sorry about that. I would recommend
you to work on another issue. I would propose for instance JAMES-2149 or JAMES-2151 .

But yes, to contribute some code, we do create a branch from master then open a pull request
on github (prefered) or add the patch on the issue (old school).

Sorry for the disagreement,

Benoit Tellier

> WebAdmin should allow  to see more details about Mails
> ------------------------------------------------------
>
>                 Key: JAMES-2321
>                 URL: https://issues.apache.org/jira/browse/JAMES-2321
>             Project: James Server
>          Issue Type: Improvement
>          Components: MailStore &amp; MailRepository, webadmin
>    Affects Versions: master
>            Reporter: Tellier Benoit
>            Priority: Major
>              Labels: feature, newbie
>
> The WebAdmin REST API allows to see mails in a mailQueue and in a mail repository. However,
as of today, the amount of information that can be seen is limited, and has the following
properties:
>  - The `name` that identifies the mail
>  - The envelope information (sender + recipients)
>  - And basic processing information (state and possible error).
> Today:
> {code:java}
> curl -XGET http://ip:port/mailRepositories/file%3A%2F%2Fvar%2Fmail%2Ferror%2F/mails/mail-key-1
> {code}
> Will return:
> {code:java}
> {
>     "name": "mail-key-1",
>     "sender": "sender@domain.com",
>     "recipients": ["recipient1@domain.com", "recipient2@domain.com"],
>     "state": "address-error",
>     "error": "A small message explaining what happened to that mail..."
> }
> {code}
> We also should add the following properties in the view by default: `lastUpdated`, `remoteHost`,
`remoteAddr`.
> The basic answers becomes then:
> {code:java}
> {
>     "name": "mail-key-1",
>     "sender": "sender@domain.com",
>     "recipients": ["recipient1@domain.com", "recipient2@domain.com"],
>     "state": "address-error",
>     "error": "A small message explaining what happened to that mail...",
>     "remoteHost": "smtp.apache.org",
>     "remoteAddr":"175.26.53.48",
>     "lastUpdated": "2018-01-28T14:31:00.000+0000"
> }
> {code}
> We need to be able to get more details about the mail object.
> We should be able to pass an `additionalFields`.
> Supported additional fields would be:
>  - `attributes`
>  - `perRecipientsHeaders`
>  - `headers`
>  - `body`
>  - `messageSize`
> An example:
> {code:java}
> curl -XGET http://ip:port/mailRepositories/file%3A%2F%2Fvar%2Fmail%2Ferror%2F/mails/mail-key-1?additionalFields=attributes,headers,body,messageSize,perRecipientsHeaders
> {code}
> Will return:
> {code:java}
> {
>     "name": "mail-key-1",
>     "sender": "sender@domain.com",
>     "recipients": ["recipient1@domain.com", "recipient2@domain.com"],
>     "state": "address-error",
>     "error": "A small message explaining what happened to that mail...",
>     "remoteHost": "smtp.apache.org",
>     "remoteAddr":"175.26.53.48",
>     "lastUpdated": "2018-01-28T14:31:00.000+0000",
>     "messageSize": 452369,
>     "attributes" : {"name1":"value1", "name2":"value2"},
>     "body": "My awesome body!!!",
>     "perRecipientsHeaders": {
>         "benwa@apache.org": {
>              "headerName1":["value1", "value2"],
>              "headerName2":["value3","value4"]
>         }
>     },
>     "headers" : {
>          "headerName3":["value5", "value8"],
>          "headerName4":["value6","value7"]
>     }
> }
> {code}
> You will need to:
>  - in */server/protocols/webadmin/webadmin-mailrepository* project:
>  - Modify MailDTO to add new mandatory fields. 
>  - *MailRepositoriesRoutesTest* :: *retrievingAMailShouldDisplayItsInformation* to take
into account these new mandatory fields.
> Then:
>  - *MailDTO* Should contain an enum called *AdditionalFields*
>  - *MailDTO::fromMail* should take a List<AdditionalFields> as argument
>  - Modify *MailRepositoriesRoutes* in order to take into account this URL parameter.
> Please note that:
>  - Unknown *additionalParameter* values should be rejected
>  - empty additionalParameters should be filtered out and ignored
>  - This parameter can be ommited.
>  - Please add tests demonstrating the following behaviours in *MailRepositoriesRoutesTest*
> Of course, as always, we are willing to provide help for these issues. Please don't hesitate
to reach us on https://gitter.im/apache/james-project .



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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