[ 
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 & 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": "[email protected]",
>     "recipients": ["[email protected]", "[email protected]"],
>     "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": "[email protected]",
>     "recipients": ["[email protected]", "[email protected]"],
>     "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": "[email protected]",
>     "recipients": ["[email protected]", "[email protected]"],
>     "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": {
>         "[email protected]": {
>              "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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to