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 "Edgar Asatryan (JIRA)" <se...@james.apache.org> on 2018/06/07 07:32:00 UTC

[jira] [Comment Edited] (JAMES-2321) WebAdmin should allow to see more details about Mails

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

Edgar Asatryan edited comment on JAMES-2321 at 6/7/18 7:31 AM:
---------------------------------------------------------------

[~BTellier], please don't worry about disagreement.

I'm planned to work on weekend so I think both tasks will be implemented and will open the PR as soon as then finished. By the way, how the community denote the ongoing PR's? The common practices tells me that I should open PR with following naming convention:
{code:java}
[WIP] JAMES-N {TASK}.
{code}
 

Is that correct ?


was (Author: ed_asatryan):
[~BTellier], please don't worry about disagreement.

I'm planned to work on weekend so I think both tasks will be implemented and will open the PR as soon as then finished. By the way, how the community denote the ongoing PR's? The common practices tells me that I should open PR with following naming convention:

 

```

[WIP] JAMES-N \{TASK}.

```

Is that correct ?

> 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