[jira] [Commented] (JAMES-3819) [GSOC] James as a (distributed) MX server
[ https://issues.apache.org/jira/browse/JAMES-3819?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17686513#comment-17686513 ] Maxim Solodovnik commented on JAMES-3819: - Thanks! https://cwiki.apache.org/confluence/display/COMDEV/GSoC+2023+Ideas+list is updated :) > [GSOC] James as a (distributed) MX server > - > > Key: JAMES-3819 > URL: https://issues.apache.org/jira/browse/JAMES-3819 > Project: James Server > Issue Type: Improvement > Components: SMTPServer >Reporter: Benoit Tellier >Priority: Major > Labels: gsoc, gsoc2023, part-time > > h3. Why ? > Alternatives like Postfix... > - Do not offer a unified view of the mail queue across nodes > - Requires statefull persistent storage > Given Apache James recent push to adopt a distributed mail queue based on > Pulsar supporting delays (JAMES-3687), it starts making sense developing > tooling for MX related tooling. > I propose myself to mentor a Gsoc on this topic. > h3. Benefits for the student > At the end of this GSOC you will... > - Have a solid understanding of email relaying and associated mechanics > - Understand James modular architecture (mailet/ matcher / routes) > - Have a hands-on expertise in SQL / NoSQL working with technologies like > Cassandra, Redis, JPA... > - Identify fix and solve architecture problems. > - Conduct performance tests and develop an operational mindset > h3. Inventory... > James ships a couple of MX related tools within smtp-hooks/mailets in default > packages. It would make sense to me to move those as an extension. > James supports today... > *checks agains DNS blacklists*. `DNSRBLHandler` or `URIRBLHandler` smtp hook > for instance. This can be moved as an extension IMO. > We would need a little performance benchmark to document performance > implications of activating DNS-RBL. > Finally as quoted by a gitter guy: it would make more sens to have this done > as a MailHook rather as a RcptHook as it would avoid doing the same job again > and over again for each recipients. See JAMES-3820 . > *Grey listing*. There's an existing implementation using JDBC as an > underlying storage. > Move it as an extension. > Remove JDBC storage, propose 2 storage possibilities: in-memory for single > node, REDIS for a distributed topology. > Some work around *whitelist mailets*? Move it as an extension, propose JPA, > Cassandra, and XML configured implementations ? With a route to manage > entries in there for JPA + Cassandra ? > I would expect a student to do his *own little audit* and come up with extra > suggestions! -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3819) [GSOC] James as a (distributed) MX server
[ https://issues.apache.org/jira/browse/JAMES-3819?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier updated JAMES-3819: -- Labels: gsoc gsoc2023 part-time (was: gscoc2023 gsoc) > [GSOC] James as a (distributed) MX server > - > > Key: JAMES-3819 > URL: https://issues.apache.org/jira/browse/JAMES-3819 > Project: James Server > Issue Type: Improvement > Components: SMTPServer >Reporter: Benoit Tellier >Priority: Major > Labels: gsoc, gsoc2023, part-time > > h3. Why ? > Alternatives like Postfix... > - Do not offer a unified view of the mail queue across nodes > - Requires statefull persistent storage > Given Apache James recent push to adopt a distributed mail queue based on > Pulsar supporting delays (JAMES-3687), it starts making sense developing > tooling for MX related tooling. > I propose myself to mentor a Gsoc on this topic. > h3. Benefits for the student > At the end of this GSOC you will... > - Have a solid understanding of email relaying and associated mechanics > - Understand James modular architecture (mailet/ matcher / routes) > - Have a hands-on expertise in SQL / NoSQL working with technologies like > Cassandra, Redis, JPA... > - Identify fix and solve architecture problems. > - Conduct performance tests and develop an operational mindset > h3. Inventory... > James ships a couple of MX related tools within smtp-hooks/mailets in default > packages. It would make sense to me to move those as an extension. > James supports today... > *checks agains DNS blacklists*. `DNSRBLHandler` or `URIRBLHandler` smtp hook > for instance. This can be moved as an extension IMO. > We would need a little performance benchmark to document performance > implications of activating DNS-RBL. > Finally as quoted by a gitter guy: it would make more sens to have this done > as a MailHook rather as a RcptHook as it would avoid doing the same job again > and over again for each recipients. See JAMES-3820 . > *Grey listing*. There's an existing implementation using JDBC as an > underlying storage. > Move it as an extension. > Remove JDBC storage, propose 2 storage possibilities: in-memory for single > node, REDIS for a distributed topology. > Some work around *whitelist mailets*? Move it as an extension, propose JPA, > Cassandra, and XML configured implementations ? With a route to manage > entries in there for JPA + Cassandra ? > I would expect a student to do his *own little audit* and come up with extra > suggestions! -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Comment Edited] (JAMES-3819) [GSOC] James as a (distributed) MX server
[ https://issues.apache.org/jira/browse/JAMES-3819?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17686298#comment-17686298 ] Maxim Solodovnik edited comment on JAMES-3819 at 2/9/23 9:14 AM: - [~btellier] it seems "gsoc2023" label is incorrectly spelled :((( Please also add "part-time"/"full-time" label was (Author: solomax): [~btellier] it seems "gsoc2023" label is incorrectly spelled :((( > [GSOC] James as a (distributed) MX server > - > > Key: JAMES-3819 > URL: https://issues.apache.org/jira/browse/JAMES-3819 > Project: James Server > Issue Type: Improvement > Components: SMTPServer >Reporter: Benoit Tellier >Priority: Major > Labels: gscoc2023, gsoc > > h3. Why ? > Alternatives like Postfix... > - Do not offer a unified view of the mail queue across nodes > - Requires statefull persistent storage > Given Apache James recent push to adopt a distributed mail queue based on > Pulsar supporting delays (JAMES-3687), it starts making sense developing > tooling for MX related tooling. > I propose myself to mentor a Gsoc on this topic. > h3. Benefits for the student > At the end of this GSOC you will... > - Have a solid understanding of email relaying and associated mechanics > - Understand James modular architecture (mailet/ matcher / routes) > - Have a hands-on expertise in SQL / NoSQL working with technologies like > Cassandra, Redis, JPA... > - Identify fix and solve architecture problems. > - Conduct performance tests and develop an operational mindset > h3. Inventory... > James ships a couple of MX related tools within smtp-hooks/mailets in default > packages. It would make sense to me to move those as an extension. > James supports today... > *checks agains DNS blacklists*. `DNSRBLHandler` or `URIRBLHandler` smtp hook > for instance. This can be moved as an extension IMO. > We would need a little performance benchmark to document performance > implications of activating DNS-RBL. > Finally as quoted by a gitter guy: it would make more sens to have this done > as a MailHook rather as a RcptHook as it would avoid doing the same job again > and over again for each recipients. See JAMES-3820 . > *Grey listing*. There's an existing implementation using JDBC as an > underlying storage. > Move it as an extension. > Remove JDBC storage, propose 2 storage possibilities: in-memory for single > node, REDIS for a distributed topology. > Some work around *whitelist mailets*? Move it as an extension, propose JPA, > Cassandra, and XML configured implementations ? With a route to manage > entries in there for JPA + Cassandra ? > I would expect a student to do his *own little audit* and come up with extra > suggestions! -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3819) [GSOC] James as a (distributed) MX server
[ https://issues.apache.org/jira/browse/JAMES-3819?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17686298#comment-17686298 ] Maxim Solodovnik commented on JAMES-3819: - [~btellier] it seems "gsoc2023" label is incorrectly spelled :((( > [GSOC] James as a (distributed) MX server > - > > Key: JAMES-3819 > URL: https://issues.apache.org/jira/browse/JAMES-3819 > Project: James Server > Issue Type: Improvement > Components: SMTPServer >Reporter: Benoit Tellier >Priority: Major > Labels: gscoc2023, gsoc > > h3. Why ? > Alternatives like Postfix... > - Do not offer a unified view of the mail queue across nodes > - Requires statefull persistent storage > Given Apache James recent push to adopt a distributed mail queue based on > Pulsar supporting delays (JAMES-3687), it starts making sense developing > tooling for MX related tooling. > I propose myself to mentor a Gsoc on this topic. > h3. Benefits for the student > At the end of this GSOC you will... > - Have a solid understanding of email relaying and associated mechanics > - Understand James modular architecture (mailet/ matcher / routes) > - Have a hands-on expertise in SQL / NoSQL working with technologies like > Cassandra, Redis, JPA... > - Identify fix and solve architecture problems. > - Conduct performance tests and develop an operational mindset > h3. Inventory... > James ships a couple of MX related tools within smtp-hooks/mailets in default > packages. It would make sense to me to move those as an extension. > James supports today... > *checks agains DNS blacklists*. `DNSRBLHandler` or `URIRBLHandler` smtp hook > for instance. This can be moved as an extension IMO. > We would need a little performance benchmark to document performance > implications of activating DNS-RBL. > Finally as quoted by a gitter guy: it would make more sens to have this done > as a MailHook rather as a RcptHook as it would avoid doing the same job again > and over again for each recipients. See JAMES-3820 . > *Grey listing*. There's an existing implementation using JDBC as an > underlying storage. > Move it as an extension. > Remove JDBC storage, propose 2 storage possibilities: in-memory for single > node, REDIS for a distributed topology. > Some work around *whitelist mailets*? Move it as an extension, propose JPA, > Cassandra, and XML configured implementations ? With a route to manage > entries in there for JPA + Cassandra ? > I would expect a student to do his *own little audit* and come up with extra > suggestions! -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3482) Mailbox/changes do not take isSubscribe changes into account
[ https://issues.apache.org/jira/browse/JAMES-3482?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3482. - Fix Version/s: 3.8.0 Resolution: Fixed CF https://github.com/apache/james-project/pull/1320 > Mailbox/changes do not take isSubscribe changes into account > > > Key: JAMES-3482 > URL: https://issues.apache.org/jira/browse/JAMES-3482 > Project: James Server > Issue Type: Sub-task > Components: eventbus, JMAP >Reporter: Benoit Tellier >Assignee: Antoine Duprat >Priority: Major > Labels: bug > Fix For: 3.8.0 > > > h2. What > {code:java} > GIVEN a subscribed mailbox > WHEN I unsubscribe it > THEN the change is not recorded and a new state is not generated > {code} > h2. How > We need extra Mailbox events to capture **subscription changes**: > MailboxSubscribed, MailboxUnsubscribed. > MailboxChangeListener needs to record state changes upon these events. > h2. Definition of done > The following Mailbox/changes integration test should pass: > {code:java} > GIVEN a subscribed mailbox > WHEN I unsubscribe it > THEN the changeshould be recorded and a new state should be generated > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3418) Email/get 6. Specific unparsed header :all
[ https://issues.apache.org/jira/browse/JAMES-3418?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17685635#comment-17685635 ] Benoit Tellier commented on JAMES-3418: --- See related issue: https://github.com/iNPUTmice/jmap/issues/77 See long unhandled issue tracking this on the Linagora backlog: https://github.com/linagora/james-project/issues/3739 That's a quick evening contribution eventually solving some enduser related issues. > Email/get 6. Specific unparsed header :all > -- > > Key: JAMES-3418 > URL: https://issues.apache.org/jira/browse/JAMES-3418 > Project: James Server > Issue Type: Sub-task > Components: JMAP >Reporter: Benoit Tellier >Assignee: Antoine Duprat >Priority: Major > > === Objective > The property looks like: `header:X-HEADER-NAME:all` > The resulting EmailView JSON will have a `header:X-HEADER-NAME:all` value > with an associated type RawHeader[]. > === The spec > https://jmap.io/spec-mail.html#properties-of-the-email-object 4.1.3 > {code:java} > :all This means the value is an array, with the items corresponding to each > instance of the header field, > in the order they appear in the message. > If this suffix is not used, the result is the value of the last instance of > the header field > (i.e., identical to the last item in the array if :all is used), or null if > none. > {code} > === DOD > === Example > {code:java} > { > "using": [ > "urn:ietf:params:jmap:core", > "urn:ietf:params:jmap:mail"], > "methodCalls": [[ > "Email/get", > { > "ids": [ "message_id1"], > "properties": ["header:X-HEADER-NAME:all"] > }, > "c1"]] > } > Will return > { > "sessionState": "75128aab4b1b", > "methodResponses": [[ > "Email/get", > { > "accountId": > "29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6", > "state": "01", > "list": [ > { > "id":7, > "header:X-HEADER-NAME:all": ["UNPARSED1", "UNPARSED2"] > } > ] > }, > "c1"]] > } > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3881) Set a JMX password
Benoit Tellier created JAMES-3881: - Summary: Set a JMX password Key: JAMES-3881 URL: https://issues.apache.org/jira/browse/JAMES-3881 Project: James Server Issue Type: Improvement Components: JMX Affects Versions: 3.7.0 Reporter: Benoit Tellier Fix For: 3.8.0 h2. Why ? JMX is inherently insecure and it's usage can allow local non-root user, as they can access port , to escalate their privileges. h2. How? Solution summary Set up JMX authentication: local users won't know which password to use (password file only readable to james user). Generate JMX credentials on the fly so that we can activate JMX authentication by default without shipping some default credentials for it. h2. How? Solution details Try the `-Dcom.sun.management.jmxremote.password.file=/root/conf/jmxremote.password` JVM parameter. Content of `jmxremote.password``: {code:java} admin magicpass {code} Modify the CLI code to take an optional username, optional password: - [ ] if username and password is unspecified, then use none - [ ] if only password is specified, default to `james-admin` username. - [ ] if only username is specified, prompt the user to enter a password. {code:java} java -cp /root/resources:/root/classes:/root/libs/* org.apache.james.cli.ServerCmd -username james-admin -password p4$$w0rD {code} Specify the configured username and password when establishing the JMX connection. BONUS: if no username / password is specified, attempt to read `conf/jmxremote.password` and see its content to use the configured username + password. Default to none only if this file cannot be found. This ensure no changes in the docker containers james-cli script. BONUS x 2: When James starts, generate randomly `jmxremote.password` (fixed username, default password) if none exists. This makes the default package of james secure (no usage of hardcoded credential, a user do not need to change something to make this secure). Plan a system property to disable this behaviour `-Djames.jmx.credential.generation=true|false`. - [ ] Set up JMX authentication in the default applications with a DUMMY passwor (`jmxremote.password` only readable to the james user) - [ ] Document setting up authentication for JMX. Explain in security guidelines that JMX auth can prevent privilege escalation. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-2656) Implement a JPAMailRepository
[ https://issues.apache.org/jira/browse/JAMES-2656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17682744#comment-17682744 ] Amichai Rothman commented on JAMES-2656: Backporting it would be great as well! As long as it doesn't break anything for users on a minor release (i.e. maybe don't make it the default yet?) - but if it's present and configurable, people can start using it! > Implement a JPAMailRepository > - > > Key: JAMES-2656 > URL: https://issues.apache.org/jira/browse/JAMES-2656 > Project: James Server > Issue Type: New Feature > Components: jpa, MailStore MailRepository >Affects Versions: master, 3.2.0 >Reporter: Benoit Tellier >Priority: Major > Labels: feature > Time Spent: 7.5h > Remaining Estimate: 0h > > Mail Repository allows the long term storage of emails. > They are currently used for several uses: > - Keep mail triggering processing errors (kinda dead-letter) > - Keep user non-displayed SPAM > - Storage medium for Data Leak Prevention > Currently, as highlishted by Garry Hurley on the user mailing list, JPA users > are forced to rely on a file based implementation, which is clearly not > optimal. > We should implement a JPAMailRepository in `server/data/jpa`. It should be > tested against the `MailRepositoryContract`. > If any help is needed, please don't hesitate to reach us on Gitter. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3880) MailRepositories: add a way to count retries
[ https://issues.apache.org/jira/browse/JAMES-3880?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3880. - Resolution: Fixed Merged. Please note that one can easilymatch reprocessed emails within the mailet container: HasMailAttribute=mailRepository-reprocessing > MailRepositories: add a way to count retries > > > Key: JAMES-3880 > URL: https://issues.apache.org/jira/browse/JAMES-3880 > Project: James Server > Issue Type: Improvement > Components: MailStore MailRepository, webadmin >Reporter: Benoit Tellier >Priority: Major > Fix For: 3.8.0 > > Time Spent: 20m > Remaining Estimate: 0h > > Currently, mail repository reprocessing is unbounded. This is a pain as for > instance a bug can cause processing to always fail. each failure will > generate a bounce. combined with auto-reprocessing this set things up for > flooding. > Proposition: count reprocessing: > {code:java} > curl -XPATCH > 'http://127.0.0.1:8000/mailRepositories/var%2Fmail%2Ferror/mails?action=reprocess=root=5=5' > {code} > - maxRetries being an option int (defaults to unlimited). maxRetries > filtering happens first then limit. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-2656) Implement a JPAMailRepository
[ https://issues.apache.org/jira/browse/JAMES-2656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17681940#comment-17681940 ] Benoit Tellier commented on JAMES-2656: --- Hello Amichai, I understand your needs, but we are a rather small communities and running an Apache release process is a long process. Help to smooth the process is welcome, don't hesitate to further enage with the community to help getting a more frequent release schedule ;-) That being said, we are finalizing details on James 3.8.0 release, which should happen in the next few months. In the meantime we could backport this work to 3.7.x which should be easier to release. > Implement a JPAMailRepository > - > > Key: JAMES-2656 > URL: https://issues.apache.org/jira/browse/JAMES-2656 > Project: James Server > Issue Type: New Feature > Components: jpa, MailStore MailRepository >Affects Versions: master, 3.2.0 >Reporter: Benoit Tellier >Priority: Major > Labels: feature > Time Spent: 7.5h > Remaining Estimate: 0h > > Mail Repository allows the long term storage of emails. > They are currently used for several uses: > - Keep mail triggering processing errors (kinda dead-letter) > - Keep user non-displayed SPAM > - Storage medium for Data Leak Prevention > Currently, as highlishted by Garry Hurley on the user mailing list, JPA users > are forced to rely on a file based implementation, which is clearly not > optimal. > We should implement a JPAMailRepository in `server/data/jpa`. It should be > tested against the `MailRepositoryContract`. > If any help is needed, please don't hesitate to reach us on Gitter. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-2656) Implement a JPAMailRepository
[ https://issues.apache.org/jira/browse/JAMES-2656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17681687#comment-17681687 ] Amichai Rothman commented on JAMES-2656: It's been 4+ months since the PR was merged... is there an ETA on when this will be released? > Implement a JPAMailRepository > - > > Key: JAMES-2656 > URL: https://issues.apache.org/jira/browse/JAMES-2656 > Project: James Server > Issue Type: New Feature > Components: jpa, MailStore MailRepository >Affects Versions: master, 3.2.0 >Reporter: Benoit Tellier >Priority: Major > Labels: feature > Time Spent: 7.5h > Remaining Estimate: 0h > > Mail Repository allows the long term storage of emails. > They are currently used for several uses: > - Keep mail triggering processing errors (kinda dead-letter) > - Keep user non-displayed SPAM > - Storage medium for Data Leak Prevention > Currently, as highlishted by Garry Hurley on the user mailing list, JPA users > are forced to rely on a file based implementation, which is clearly not > optimal. > We should implement a JPAMailRepository in `server/data/jpa`. It should be > tested against the `MailRepositoryContract`. > If any help is needed, please don't hesitate to reach us on Gitter. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3880) MailRepositories: add a way to count retries
Benoit Tellier created JAMES-3880: - Summary: MailRepositories: add a way to count retries Key: JAMES-3880 URL: https://issues.apache.org/jira/browse/JAMES-3880 Project: James Server Issue Type: Improvement Components: MailStore MailRepository, webadmin Reporter: Benoit Tellier Fix For: 3.8.0 Currently, mail repository reprocessing is unbounded. This is a pain as for instance a bug can cause processing to always fail. each failure will generate a bounce. combined with auto-reprocessing this set things up for flooding. Proposition: count reprocessing: {code:java} curl -XPATCH 'http://127.0.0.1:8000/mailRepositories/var%2Fmail%2Ferror/mails?action=reprocess=root=5=5' {code} - maxRetries being an option int (defaults to unlimited). maxRetries filtering happens first then limit. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3875) JDBCMailRepository MSSQL Insert failures
[ https://issues.apache.org/jira/browse/JAMES-3875?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Adrian Bucher updated JAMES-3875: - Fix Version/s: 3.8.0 > JDBCMailRepository MSSQL Insert failures > > > Key: JAMES-3875 > URL: https://issues.apache.org/jira/browse/JAMES-3875 > Project: James Server > Issue Type: Bug > Components: JDBC, MailStore MailRepository >Affects Versions: 3.7.0, 3.7.3 >Reporter: Adrian Bucher >Priority: Major > Fix For: 3.8.0 > > Time Spent: 20m > Remaining Estimate: 0h > > JDBCMailRepository has two errors in the insert prepared statement if working > with MSSQL: > *1. Error Message can not be stored in the JDBC if it is longer then 200 > chars, this causes a new exception, and the email can be lost.* > The error field of the email table is only 200 char long, if you try to store > a longer error message (i.e. an exception) this will fail as the driver does > not cut the message, and the inster statement will throw an exception. > *2. MSSQL Server does throw "cannot convert nvarchar to image" in case of > per_recipient_headers is null.* > In the case that the per_recipient_header is null the field is stored as > object, mssql can not handle this and gets a type convertion error. > -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3878) Remove icu4j dependency and replace required functionality with other dependencies
[ https://issues.apache.org/jira/browse/JAMES-3878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3878. - Fix Version/s: 3.8.0 Resolution: Fixed Merged. Thanks for the contribution! > Remove icu4j dependency and replace required functionality with other > dependencies > -- > > Key: JAMES-3878 > URL: https://issues.apache.org/jira/browse/JAMES-3878 > Project: James Server > Issue Type: Improvement > Components: mailbox >Affects Versions: master >Reporter: Wojtek >Priority: Minor > Fix For: 3.8.0 > > Time Spent: 50m > Remaining Estimate: 0h > > (context discussion: > [https://gitter.im/apache/james-project?at=63c87300c47d581062986327)] > > Currently James has `icu4j` as dependency but only uses > `UnicodeSet.containsAll()` from it. Given that the dependency is 15M and the > usage is minimal and could be replaced with functions from other dependencies > it would be good to do so. > > Right now it's used in: > * `org.apache.james.mailbox.model.MailboxAnnotationKey` > * {{org.apache.james.jmap.draft.model.Keyword }} > * ({{{}.java){}}}{{{}{}}} > * {{org.apache.james.jmap.mail.Keyword}} ({{{}.scala{}}}) > > It could be replaced with `re2` from google (https://github.com/google/re2j), > which is already present in dependencies and it's only ~100K) and performance > wise it should be on pair. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3876) RoundRobin for Remote Delivery if mutiple gateway server are defined
[ https://issues.apache.org/jira/browse/JAMES-3876?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3876. - Resolution: Fixed Merged, thank you for this usefu contribution. > RoundRobin for Remote Delivery if mutiple gateway server are defined > - > > Key: JAMES-3876 > URL: https://issues.apache.org/jira/browse/JAMES-3876 > Project: James Server > Issue Type: New Feature > Components: Remote Delivery >Affects Versions: 3.8.0 >Reporter: Adrian Bucher >Priority: Major > Time Spent: 1.5h > Remaining Estimate: 0h > > Currently you are able to define multiple gateway server in remote delivery, > the first system is always the first that RemoteDelivery tries to reach. if > it is not reachable it will take the second as failover, the next message it > will send again to the first defined host first. > It would be nice to also have the posibility to round robin over the defined > gateway server so the load is more balanced. In the case of a failure it will > still try to send it to all defined target hosts. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3879) Use jUnit Category/Tag to exclude by default integration/long running tests
Wojtek created JAMES-3879: - Summary: Use jUnit Category/Tag to exclude by default integration/long running tests Key: JAMES-3879 URL: https://issues.apache.org/jira/browse/JAMES-3879 Project: James Server Issue Type: Test Affects Versions: master Reporter: Wojtek On the main James page (https://github.com/apache/james-project#how-to-check-the-compilation) there is a text: "Useful (maven) options includes: `-DskipTests` to skip the long to execute resource consuming test suite that requires a docker daemon." I propose using `Tag` annotation to mark those test ("docker", "slow", "integration", etc.) and by default exclude those categories. Main benefit, that majority of tests would be run when building James either way (thus, allowing to test most of the code) and integration tests can still be run (either locally or on CI) -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3878) Remove icu4j dependency and replace required functionality with other dependencies
Wojtek created JAMES-3878: - Summary: Remove icu4j dependency and replace required functionality with other dependencies Key: JAMES-3878 URL: https://issues.apache.org/jira/browse/JAMES-3878 Project: James Server Issue Type: Improvement Components: mailbox Affects Versions: master Reporter: Wojtek (context discussion: [https://gitter.im/apache/james-project?at=63c87300c47d581062986327)] Currently James has `icu4j` as dependency but only uses `UnicodeSet.containsAll()` from it. Given that the dependency is 15M and the usage is minimal and could be replaced with functions from other dependencies it would be good to do so. Right now it's used in: * `org.apache.james.mailbox.model.MailboxAnnotationKey` * {{org.apache.james.jmap.draft.model.Keyword }} * ({{{}.java){}}}{{{}{}}} * {{org.apache.james.jmap.mail.Keyword}} ({{{}.scala{}}}) It could be replaced with `re2` from google (https://github.com/google/re2j), which is already present in dependencies and it's only ~100K) and performance wise it should be on pair. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3876) RoundRobin for Remote Delivery if mutiple gateway server are defined
[ https://issues.apache.org/jira/browse/JAMES-3876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17678638#comment-17678638 ] Adrian Bucher commented on JAMES-3876: -- For MX mode there is already a randomized (not round robin) version in place, implemented with JAMES-913, which is good enougth > RoundRobin for Remote Delivery if mutiple gateway server are defined > - > > Key: JAMES-3876 > URL: https://issues.apache.org/jira/browse/JAMES-3876 > Project: James Server > Issue Type: New Feature > Components: Remote Delivery >Affects Versions: 3.8.0 >Reporter: Adrian Bucher >Priority: Major > > Currently you are able to define multiple gateway server in remote delivery, > the first system is always the first that RemoteDelivery tries to reach. if > it is not reachable it will take the second as failover, the next message it > will send again to the first defined host first. > It would be nice to also have the posibility to round robin over the defined > gateway server so the load is more balanced. In the case of a failure it will > still try to send it to all defined target hosts. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Comment Edited] (JAMES-3876) RoundRobin for Remote Delivery if mutiple gateway server are defined
[ https://issues.apache.org/jira/browse/JAMES-3876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17678600#comment-17678600 ] Benoit Tellier edited comment on JAMES-3876 at 1/19/23 10:03 AM: - Ha you mean for "gateway" mode right? Then yes in this case, round robin is a must You can definitly open a PR with what you have today. Impleenting it for MX mode is inmy opinion much more of a priority. was (Author: btellier): Ha you mean for "gateway" mode right? Then yes in this case, round robin is a must > RoundRobin for Remote Delivery if mutiple gateway server are defined > - > > Key: JAMES-3876 > URL: https://issues.apache.org/jira/browse/JAMES-3876 > Project: James Server > Issue Type: New Feature > Components: Remote Delivery >Affects Versions: 3.8.0 >Reporter: Adrian Bucher >Priority: Major > > Currently you are able to define multiple gateway server in remote delivery, > the first system is always the first that RemoteDelivery tries to reach. if > it is not reachable it will take the second as failover, the next message it > will send again to the first defined host first. > It would be nice to also have the posibility to round robin over the defined > gateway server so the load is more balanced. In the case of a failure it will > still try to send it to all defined target hosts. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3876) RoundRobin for Remote Delivery if mutiple gateway server are defined
[ https://issues.apache.org/jira/browse/JAMES-3876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17678600#comment-17678600 ] Benoit Tellier commented on JAMES-3876: --- Ha you mean for "gateway" mode right? Then yes in this case, round robin is a must > RoundRobin for Remote Delivery if mutiple gateway server are defined > - > > Key: JAMES-3876 > URL: https://issues.apache.org/jira/browse/JAMES-3876 > Project: James Server > Issue Type: New Feature > Components: Remote Delivery >Affects Versions: 3.8.0 >Reporter: Adrian Bucher >Priority: Major > > Currently you are able to define multiple gateway server in remote delivery, > the first system is always the first that RemoteDelivery tries to reach. if > it is not reachable it will take the second as failover, the next message it > will send again to the first defined host first. > It would be nice to also have the posibility to round robin over the defined > gateway server so the load is more balanced. In the case of a failure it will > still try to send it to all defined target hosts. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3875) JDBCMailRepository MSSQL Insert failures
[ https://issues.apache.org/jira/browse/JAMES-3875?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17678595#comment-17678595 ] Benoit Tellier commented on JAMES-3875: --- It will be part of the soon to be released Apache James 3.8.0 release. > JDBCMailRepository MSSQL Insert failures > > > Key: JAMES-3875 > URL: https://issues.apache.org/jira/browse/JAMES-3875 > Project: James Server > Issue Type: Bug > Components: JDBC, MailStore MailRepository >Affects Versions: 3.7.0, 3.7.3 >Reporter: Adrian Bucher >Priority: Major > > JDBCMailRepository has two errors in the insert prepared statement if working > with MSSQL: > *1. Error Message can not be stored in the JDBC if it is longer then 200 > chars, this causes a new exception, and the email can be lost.* > The error field of the email table is only 200 char long, if you try to store > a longer error message (i.e. an exception) this will fail as the driver does > not cut the message, and the inster statement will throw an exception. > *2. MSSQL Server does throw "cannot convert nvarchar to image" in case of > per_recipient_headers is null.* > In the case that the per_recipient_header is null the field is stored as > object, mssql can not handle this and gets a type convertion error. > -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3875) JDBCMailRepository MSSQL Insert failures
[ https://issues.apache.org/jira/browse/JAMES-3875?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17678546#comment-17678546 ] Adrian Bucher commented on JAMES-3875: -- Hello, Yes I am aware of this, but JPA repository forces me to FileMailRepository, what is the state of JAMES-2656 would this address this issue, I also could look into adding a JpaMailRepository. Regards Adrian > JDBCMailRepository MSSQL Insert failures > > > Key: JAMES-3875 > URL: https://issues.apache.org/jira/browse/JAMES-3875 > Project: James Server > Issue Type: Bug > Components: JDBC, MailStore MailRepository >Affects Versions: 3.7.0, 3.7.3 >Reporter: Adrian Bucher >Priority: Major > > JDBCMailRepository has two errors in the insert prepared statement if working > with MSSQL: > *1. Error Message can not be stored in the JDBC if it is longer then 200 > chars, this causes a new exception, and the email can be lost.* > The error field of the email table is only 200 char long, if you try to store > a longer error message (i.e. an exception) this will fail as the driver does > not cut the message, and the inster statement will throw an exception. > *2. MSSQL Server does throw "cannot convert nvarchar to image" in case of > per_recipient_headers is null.* > In the case that the per_recipient_header is null the field is stored as > object, mssql can not handle this and gets a type convertion error. > -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3876) RoundRobin for Remote Delivery if mutiple gateway server are defined
[ https://issues.apache.org/jira/browse/JAMES-3876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17678536#comment-17678536 ] Adrian Bucher commented on JAMES-3876: -- Hello Benoit, I currently have a implementation only for the option if you define several next hop MTA and not for the MXrecord option, but could check on implementation for the MX as well. > RoundRobin for Remote Delivery if mutiple gateway server are defined > - > > Key: JAMES-3876 > URL: https://issues.apache.org/jira/browse/JAMES-3876 > Project: James Server > Issue Type: New Feature > Components: Remote Delivery >Affects Versions: 3.8.0 >Reporter: Adrian Bucher >Priority: Major > > Currently you are able to define multiple gateway server in remote delivery, > the first system is always the first that RemoteDelivery tries to reach. if > it is not reachable it will take the second as failover, the next message it > will send again to the first defined host first. > It would be nice to also have the posibility to round robin over the defined > gateway server so the load is more balanced. In the case of a failure it will > still try to send it to all defined target hosts. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3875) JDBCMailRepository MSSQL Insert failures
[ https://issues.apache.org/jira/browse/JAMES-3875?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17678315#comment-17678315 ] Benoit Tellier commented on JAMES-3875: --- Hello, Thanks to report these issues. Please be aware that JDBCMailRepository is deprecated and will be dropped after the 3.8.x release line. The community will likely not improve this component. Contributions welcome anyway,but migration to another repository implementation (the JPA one?) is strongly advised. Regards, Benoit TELLIER > JDBCMailRepository MSSQL Insert failures > > > Key: JAMES-3875 > URL: https://issues.apache.org/jira/browse/JAMES-3875 > Project: James Server > Issue Type: Bug > Components: JDBC, MailStore MailRepository >Affects Versions: 3.7.0, 3.7.3 >Reporter: Adrian Bucher >Priority: Major > > JDBCMailRepository has two errors in the insert prepared statement if working > with MSSQL: > *1. Error Message can not be stored in the JDBC if it is longer then 200 > chars, this causes a new exception, and the email can be lost.* > The error field of the email table is only 200 char long, if you try to store > a longer error message (i.e. an exception) this will fail as the driver does > not cut the message, and the inster statement will throw an exception. > *2. MSSQL Server does throw "cannot convert nvarchar to image" in case of > per_recipient_headers is null.* > In the case that the per_recipient_header is null the field is stored as > object, mssql can not handle this and gets a type convertion error. > -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3876) RoundRobin for Remote Delivery if mutiple gateway server are defined
[ https://issues.apache.org/jira/browse/JAMES-3876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17678314#comment-17678314 ] Benoit Tellier commented on JAMES-3876: --- Hello Adrian, I think such kind of load-balancing can only be done if the MX have the same priorities (MX servers should pick the highest). If several MXs have top priority then I agree that doing roundRobin is desirable. In addition to this behaviour, we could add an option to RemoteDelivery: ignoreMXPriorites, defaulting to false. Combined with the above behaviour this would do what you describe. Patch welcome. Don't hesitate to ask if you want help in order to fix this. Best regards, Benoit > RoundRobin for Remote Delivery if mutiple gateway server are defined > - > > Key: JAMES-3876 > URL: https://issues.apache.org/jira/browse/JAMES-3876 > Project: James Server > Issue Type: New Feature > Components: Remote Delivery >Affects Versions: 3.8.0 >Reporter: Adrian Bucher >Priority: Major > > Currently you are able to define multiple gateway server in remote delivery, > the first system is always the first that RemoteDelivery tries to reach. if > it is not reachable it will take the second as failover, the next message it > will send again to the first defined host first. > It would be nice to also have the posibility to round robin over the defined > gateway server so the load is more balanced. In the case of a failure it will > still try to send it to all defined target hosts. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3877) Allow to configure jpa pool max connections in juice module
Jean Helou created JAMES-3877: - Summary: Allow to configure jpa pool max connections in juice module Key: JAMES-3877 URL: https://issues.apache.org/jira/browse/JAMES-3877 Project: James Server Issue Type: Improvement Components: jpa Reporter: Jean Helou When using the juice JPA module, the configuration is read from `james-database.properties` by the JPAConfiguration class. In doing so it creates `openjpa.*` properties which are then consumed by the entity manager factory. Among these properties `openjpa.ConnectionFactoryProperties` is used to configure the underlying apache dbcp connection pool. While it is already aware of some properties, it doesn't allow for configuring the `MaxTotal` which is at 8 by default (my quota is 5 :) ) The list and use of all the properties is documented at [https://commons.apache.org/proper/commons-dbcp/configuration.html |https://commons.apache.org/proper/commons-dbcp/configuration.html] Adding parsing for more properties is pretty easy and could be a nice entry point to beginner contributors even though I couldn't figure out how to run the tests within my IDE -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3876) RoundRobin for Remote Delivery if mutiple gateway server are defined
Adrian Bucher created JAMES-3876: Summary: RoundRobin for Remote Delivery if mutiple gateway server are defined Key: JAMES-3876 URL: https://issues.apache.org/jira/browse/JAMES-3876 Project: James Server Issue Type: New Feature Components: Remote Delivery Affects Versions: 3.8.0 Reporter: Adrian Bucher Currently you are able to define multiple gateway server in remote delivery, the first system is always the first that RemoteDelivery tries to reach. if it is not reachable it will take the second as failover, the next message it will send again to the first defined host first. It would be nice to also have the posibility to round robin over the defined gateway server so the load is more balanced. In the case of a failure it will still try to send it to all defined target hosts. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3875) JDBCMailRepository MSSQL Insert failures
Adrian Bucher created JAMES-3875: Summary: JDBCMailRepository MSSQL Insert failures Key: JAMES-3875 URL: https://issues.apache.org/jira/browse/JAMES-3875 Project: James Server Issue Type: Bug Components: JDBC, MailStore MailRepository Affects Versions: 3.7.0, 3.7.3 Reporter: Adrian Bucher JDBCMailRepository has two errors in the insert prepared statement if working with MSSQL: *1. Error Message can not be stored in the JDBC if it is longer then 200 chars, this causes a new exception, and the email can be lost.* The error field of the email table is only 200 char long, if you try to store a longer error message (i.e. an exception) this will fail as the driver does not cut the message, and the inster statement will throw an exception. *2. MSSQL Server does throw "cannot convert nvarchar to image" in case of per_recipient_headers is null.* In the case that the per_recipient_header is null the field is stored as object, mssql can not handle this and gets a type convertion error. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3874) LMTP should handle overQuota exceptions
Benoit Tellier created JAMES-3874: - Summary: LMTP should handle overQuota exceptions Key: JAMES-3874 URL: https://issues.apache.org/jira/browse/JAMES-3874 Project: James Server Issue Type: Improvement Components: lmtp, mailbox Reporter: Benoit Tellier As reported by @mogui on gitter, {code:java} I'm using lmtp protocol to deliver mail in a complex flow, but when a user has a full quota , lmtp handler chains fails as expected but gives out a generic error instead of the correct smtp/lmtp one instead of geting out a 452 (insufficient storage) reply code it outputs a generic 451 (ACTION_ABORTED). By looking to james logs it raise a correct org.apache.james.mailbox.exception.OverQuotaException but lmtp handler chains seems not to handle it correctly. There is some configuration to be made ? Is it a bug? I have to implement a mail container handler for lmtp to fix this? Thanks you anyway {code} In MailboxDeliverToRecipientHandler we can handle the OverQuotaException the right way. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3873) James 3.7.2 release' zip is missing lib folder
[ https://issues.apache.org/jira/browse/JAMES-3873?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3873. - Resolution: Fixed Should be fixed for upcoming 3.7.3. Needs to recompile after release > James 3.7.2 release' zip is missing lib folder > -- > > Key: JAMES-3873 > URL: https://issues.apache.org/jira/browse/JAMES-3873 > Project: James Server > Issue Type: Bug >Reporter: Tran Hong Quan >Priority: Major > > Following the report of @laoseth on Gitter, we are missing *.lib folder in > `guice-jpa` 3.7.2 zip and `distributed` 3.7.2 zip, while `spring app` 3.7.2 > zip is fine. > This leads to unable to start of James 3.7.2 using the zip binary. > This seems to be happening for the on-going 3.7.3 release also. > We should re-package the zips and upload them correctly. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3873) James 3.7.2 release' zip is missing lib folder
Tran Hong Quan created JAMES-3873: - Summary: James 3.7.2 release' zip is missing lib folder Key: JAMES-3873 URL: https://issues.apache.org/jira/browse/JAMES-3873 Project: James Server Issue Type: Bug Reporter: Tran Hong Quan Following the report of @laoseth on Gitter, we are missing *.lib folder in `guice-jpa` 3.7.2 zip and `distributed` 3.7.2 zip, while `spring app` 3.7.2 zip is fine. This leads to unable to start of James 3.7.2 using the zip binary. This seems to be happening for the on-going 3.7.3 release also. We should re-package the zips and upload them correctly. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3872) Add a read level for JMAP to fast retrieve attachments metadata without fetching body content
Tran Hong Quan created JAMES-3872: - Summary: Add a read level for JMAP to fast retrieve attachments metadata without fetching body content Key: JAMES-3872 URL: https://issues.apache.org/jira/browse/JAMES-3872 Project: James Server Issue Type: Improvement Components: JMAP, mailbox Reporter: Tran Hong Quan Assignee: Antoine Duprat The idea is to allow fastly retrieve preview of a mail with attachment metadata with JMAP. e.g: !https://user-images.githubusercontent.com/55171818/209802473-d39559c2-a97c-4aa3-9c39-462040dbe579.png! Nowadays with Email/get, to fetch the `attachments` property, we use the FULL_CONTENT fetch type means fetching the body content while we don't need that in this case. We should introduce a JMAP read level that retrieves the `attachments` property without fetching the body of the mail. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3870) Each IMAP response line is a distinct TCP packet
[ https://issues.apache.org/jira/browse/JAMES-3870?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3870. - Resolution: Fixed > Each IMAP response line is a distinct TCP packet > > > Key: JAMES-3870 > URL: https://issues.apache.org/jira/browse/JAMES-3870 > Project: James Server > Issue Type: Improvement > Components: IMAPServer >Reporter: Benoit Tellier >Priority: Major > Fix For: 3.8.0 > > Attachments: master-list-responses-with-flush.png, > pr-list-responses-without-flush.png > > Time Spent: 0.5h > Remaining Estimate: 0h > > Today each Imap response line is transmitted in a distinct TCP packet. > This causes a lot of network overhead as > => TCP headers are added for each response line. To give an idea a LIST > response line is 35 bytes long but result in a 101 bytes TCP frame so a 188% > overcost > => TCP ack are conducted for each line independently. An ACK is 66 bytes, > This is especially problematic for LIST, FETCH commands that actually result > in many (100, 1000, maybe millions) response lines. > See attach screenshot: master-list-responses-with-flush.png demonstrating > this. > We should try to limit the calls to "flush" with Netty, and force the flush > only once per IMAP command (at the end of processing). Netty is free to > transmit some data earlier if it's buffer states requires it. > The entire mailbox list take 1 packet to transmit (1420 btes total for 41 > mailboxes so ~35 bytes per mailbox) and a single ACK (66 bytes). > See attach screenshot: pr-list-responses-without-flush.png demonstrating this. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3793) OOM when loading a very large object from S3?
[ https://issues.apache.org/jira/browse/JAMES-3793?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3793. - Resolution: Fixed > OOM when loading a very large object from S3? > - > > Key: JAMES-3793 > URL: https://issues.apache.org/jira/browse/JAMES-3793 > Project: James Server > Issue Type: Bug >Reporter: Benoit Tellier >Priority: Major > Time Spent: 50m > Remaining Estimate: 0h > > h2. What? > We encountered recurring OutOfMemory exception on one of our production > deployment. > Memory dump analysis was unconclusive and this tends to disqualify an > explanation based on a memory leak (300MB of objects only on the heap a few > minutes after the OOM). > A careful log analysis lead to find what seems to be the "original OOM": > {code:java} > java.lang.OutOfMemoryError: Java heap space > at java.base/java.util.Arrays.copyOf(Unknown Source) > at software.amazon.awssdk.core.BytesWrapper.asByteArray(BytesWrapper.java:64) > at > org.apache.james.blob.objectstorage.aws.S3BlobStoreDAO$$Lambda$4237/0x0008019f5ad8.apply(Unknown > Source) > at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:106) > at > reactor.core.publisher.MonoPublishOn$PublishOnSubscriber.run(MonoPublishOn.java:181) > at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) > at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) > at java.base/java.util.concurrent.FutureTask.run(Unknown Source) > at > java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown > Source) > at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) > at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown > Source) > at java.base/java.lang.Thread.run(Unknown Source) > {code} > > Following this OOM the application is in a zombie state, unresponsive, > throwing OOMs without stacktraces, with Cassandra queries that never > finishes, unable to obtain a rabbitMQ connection and have issues within the > S3 driver... This sound like reactive programming limitations, that prevents > the java platform to handle the OOM like it should (crash the app, take a > dump, etc...) > We did audit quickly our dateset and found several emails/attachment > exceeding the 100MB, with a partial and quick audit (we might very well have > some larger data!). > Thus the current explanation is that somehow we successfully saved in S3 a > very big mail and now have OOMs when one tries to read it (as S3 blob store > DAO does defensive copies). > h2. Possible actions > This is an ongoing events, thus our understanding of it can evolve yet as it > raises interesting fixes that are hard to understand without the related > context, I decided to share it here anyway. I will report upcoming > developments here. > Our first action is to confirm the current diagnostic: > - Further audit our datasets to find large items > - Deploy a patched version of James that rejects and log S3 objects larger > than 50MB > Yet our current understanding leads to interesting questions... > *Is it a good idea to load big objects from S3 into our memory?* > As a preliminary answer, upon email reads we are using `byte[]` for > simplicity (no resource management, full view of the data). Changing this is > not the scope of this ticket at this is likely a major rework with many > unthought impacts. (I dont want to open that Pandora box...) > SMTP, IMAP, JMAP, and the mailet container all have configuration preventing > sending/saving/receiving/uploading too big of a mail/attachment/blob, so we > likely have the convincing defense line at the protocol level. Yet this can > be defeated by either bad configuration (in our case JMAP was not checking > the size of sent email) history (rules were not the same in the past so > we ingested too big of a mail in the past), 'malicious action' (if all it > takes to crash james is to replace a 1 MB mail by a 1 GB mail). It thus > sounds interesting to me to have additional protection at the data access > layer, and be able to (optionally) configure S3 to not load objects of say > more than 50 MBs. This can be added within the blob.properties file. > Something like: > {code:java} > # Maximum size of blobs allowed to be loaded as byte array. Allow to prevent > loading too large objects into memory (can cause OutOfMemoryException). > # Optional, defaults to no limit being enforced. This is a size in bytes. > Supported units are B, K, M, G, T default
[jira] [Closed] (JAMES-3867) Make IMAP modular
[ https://issues.apache.org/jira/browse/JAMES-3867?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3867. - Resolution: Fixed > Make IMAP modular > - > > Key: JAMES-3867 > URL: https://issues.apache.org/jira/browse/JAMES-3867 > Project: James Server > Issue Type: Improvement > Components: guice, IMAPServer >Reporter: Benoit Tellier >Priority: Major > Fix For: 3.8.0 > > Time Spent: 20m > Remaining Estimate: 0h > > As an IMAP administrator I want to customize IMAP processing easily. This > includes removing/adding/changing IMAP processors/encoders/decoders. > This allows the following use cases: > - Add support for (potentially custom) IMAP extensions without recompiling > James > - Removing support for buggy commands easily, if any > - Enforcing "read only behaviour" > - Customizing some commands. For instance one of my customers got a tricky > non standard IMAP authenticate command to handle. > The admin would specify a list of ImapPackage (which is itself a bundle of > processors/encoders/decoders) from the imapserver.xml configuration file. By > default, if unspecified the default IMAP package would be used. > Both ImapPackage/processors/encoders/decoders loading would leverage the > extensions-jars mechanism. > h3. Definition of done > Write an exemple of such modularization writing a PING / PONG command and > load it into a James server. > {code:java} > A001 PING whatever > * PONG whatever > A001 OK PING command completed. > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3863) JMAP OPTIONS endpoints should allow caching
[ https://issues.apache.org/jira/browse/JAMES-3863?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3863. - Fix Version/s: 3.8.0 Resolution: Fixed > JMAP OPTIONS endpoints should allow caching > --- > > Key: JAMES-3863 > URL: https://issues.apache.org/jira/browse/JAMES-3863 > Project: James Server > Issue Type: Improvement >Reporter: Tran Hong Quan >Priority: Major > Fix For: 3.8.0 > > Time Spent: 10m > Remaining Estimate: 0h > > JMAP OPTIONS endpoints should return the `Access-Control-Max-Age` response > header. > By doing that client can cache the CORS information and avoid duplicated > calls to OPTIONS endpoints therefore better JMAP performance. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3866) ActiveMQ: memory leak in health check
[ https://issues.apache.org/jira/browse/JAMES-3866?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3866. - Resolution: Fixed > ActiveMQ: memory leak in health check > - > > Key: JAMES-3866 > URL: https://issues.apache.org/jira/browse/JAMES-3866 > Project: James Server > Issue Type: Bug > Components: Queue, webadmin >Affects Versions: 3.7.1, 3.7.3 >Reporter: ouvtam >Priority: Major > Fix For: 3.8.0 > > > For documentation purposes this issue was created to let other James 3 (3.7.1 > and above) users know about a memory leakage regarding ActiveMQ healthchecks. > In short, James 3.7.1/3.7.2 is affected if: > * ActiveMQ is used as message broker / JMS queue > * Healthchecks are performed (see conf/healthcheck.properties) > Workaround: > * disabling recurrent healthcheck reports (webadmin + HTTP) > See discussion and fix (master): > [https://github.com/apache/james-project/commit/390be9e9e3d048d2e177aa2fdf6b6732035a7c16|https://github.com/apache/james-project/commit/390be9e9e3d048d2e177aa2fdf6b6732035a7c16] -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3868) Cannot handle IMAP PLAIN login with password longer than 255 char
[ https://issues.apache.org/jira/browse/JAMES-3868?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3868. - Fix Version/s: 3.8.0 Resolution: Fixed > Cannot handle IMAP PLAIN login with password longer than 255 char > - > > Key: JAMES-3868 > URL: https://issues.apache.org/jira/browse/JAMES-3868 > Project: James Server > Issue Type: Bug >Affects Versions: 3.6.0 >Reporter: Niko Usai >Priority: Critical > Fix For: 3.8.0 > > Time Spent: 0.5h > Remaining Estimate: 0h > > There is a bug, in my opinion, in how `AuthenticateProcessor` handles PLAIN > login omitting authorization identity. > The fact is when authorization identity is blank the password field is parsed > with Username.of() that has the 255 char limitation, and it expects to raise > an exception when looking for the 3rd missing argument, where the password > should be, which has not this limitation. > These leads to an "IllegalArgumentException" of the Username class creating > an invalid AuthenticationAttempt. > {code:java} > String userpass = new > String(Base64.getDecoder().decode(initialClientResponse)); > StringTokenizer authTokenizer = new StringTokenizer(userpass, "\0"); > String token1 = authTokenizer.nextToken(); // Authorization Identity > token2 = authTokenizer.nextToken(); // Authentication Identity > try { > return delegation(Username.of(token1), Username.of(token2), > authTokenizer.nextToken()); > } catch (java.util.NoSuchElementException ignored) { > // If we got here, this is what happened. RFC 2595 > // says that "the client may leave the authorization {code} > > -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3869) JSPF mailet should skip private networks in addition to 127.0.0.1 and use correct HELO
[ https://issues.apache.org/jira/browse/JAMES-3869?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3869. - Fix Version/s: 3.8.0 Resolution: Fixed > JSPF mailet should skip private networks in addition to 127.0.0.1 and use > correct HELO > -- > > Key: JAMES-3869 > URL: https://issues.apache.org/jira/browse/JAMES-3869 > Project: James Server > Issue Type: Improvement >Reporter: ouvtam >Priority: Minor > Fix For: 3.8.0 > > Time Spent: 1h > Remaining Estimate: 0h > > h3. Private Networks > The JSPF mailet skips SPF checks for remote address 127.0.0.1. > In addition, the mailet should also skip SPF check for following private > class networks: > * 127.0.0.0/8 > * 10.0.0.0/8 > * 172.16.0.0 – 172.31.255.255 > * 192.168.0.0/16 > Make it configurable to add more flexibility to exclude other networks. > h3. HELO Check > Currently the SPF HELO check uses the remote address instead of the HELO > provided by the SMTP session. The SPF HELO check gets important for null > senders (e.g. bounces) when no sender address is available. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3871) No eventBus associated to EventDispatcher$DispatchingFailureGroup
[ https://issues.apache.org/jira/browse/JAMES-3871?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3871. - Resolution: Fixed > No eventBus associated to EventDispatcher$DispatchingFailureGroup > - > > Key: JAMES-3871 > URL: https://issues.apache.org/jira/browse/JAMES-3871 > Project: James Server > Issue Type: Bug >Reporter: Tung TRAN >Priority: Trivial > Time Spent: 40m > Remaining Estimate: 0h > > *Error:* > {code:java} > logger org.apache.james.webadmin.service.EventDeadLettersRedeliverService > message No eventBus associated. event: EventId > {id=db0dcdc2-0f2d-4736-8da6-1057e3d9179e} > for group: org.apache.james.events.EventDispatcher$DispatchingFailureGroup > {code} > > *Reason:* > The `EventDispatcher$DispatchingFailureGroup` has not been registered for > event bus correspondence. > *How to fix:* > - Create a EventBusName POJO into event-bus-api > - Create a custom Group for DispatchingFailureGroup in event-bus-api, with > the EventBusName in it. (With serialization, deserialization) > - Use EventBusName into existing naming strategy (replaces String prefix) > - In EventDeadLettersRedeliverService handle DispatchingFailureGroup > differently: use the EventBusName to find the right event bus. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3871) No eventBus associated to EventDispatcher$DispatchingFailureGroup
Tung TRAN created JAMES-3871: Summary: No eventBus associated to EventDispatcher$DispatchingFailureGroup Key: JAMES-3871 URL: https://issues.apache.org/jira/browse/JAMES-3871 Project: James Server Issue Type: Bug Reporter: Tung TRAN *Error:* {code:java} logger org.apache.james.webadmin.service.EventDeadLettersRedeliverService message No eventBus associated. event: EventId {id=db0dcdc2-0f2d-4736-8da6-1057e3d9179e} for group: org.apache.james.events.EventDispatcher$DispatchingFailureGroup {code} *Reason:* The `EventDispatcher$DispatchingFailureGroup` has not been registered for event bus correspondence. *How to fix:* - Create a EventBusName POJO into event-bus-api - Create a custom Group for DispatchingFailureGroup in event-bus-api, with the EventBusName in it. (With serialization, deserialization) - Use EventBusName into existing naming strategy (replaces String prefix) - In EventDeadLettersRedeliverService handle DispatchingFailureGroup differently: use the EventBusName to find the right event bus. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3870) Each IMAP response line is a distinct TCP packet
Benoit Tellier created JAMES-3870: - Summary: Each IMAP response line is a distinct TCP packet Key: JAMES-3870 URL: https://issues.apache.org/jira/browse/JAMES-3870 Project: James Server Issue Type: Improvement Components: IMAPServer Reporter: Benoit Tellier Fix For: 3.8.0 Attachments: master-list-responses-with-flush.png, pr-list-responses-without-flush.png Today each Imap response line is transmitted in a distinct TCP packet. This causes a lot of network overhead as => TCP headers are added for each response line. To give an idea a LIST response line is 35 bytes long but result in a 101 bytes TCP frame so a 188% overcost => TCP ack are conducted for each line independently. An ACK is 66 bytes, This is especially problematic for LIST, FETCH commands that actually result in many (100, 1000, maybe millions) response lines. See attach screenshot: master-list-responses-with-flush.png demonstrating this. We should try to limit the calls to "flush" with Netty, and force the flush only once per IMAP command (at the end of processing). Netty is free to transmit some data earlier if it's buffer states requires it. The entire mailbox list take 1 packet to transmit (1420 btes total for 41 mailboxes so ~35 bytes per mailbox) and a single ACK (66 bytes). See attach screenshot: pr-list-responses-without-flush.png demonstrating this. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3870) Each IMAP response line is a distinct TCP packet
[ https://issues.apache.org/jira/browse/JAMES-3870?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier updated JAMES-3870: -- Attachment: pr-list-responses-without-flush.png master-list-responses-with-flush.png > Each IMAP response line is a distinct TCP packet > > > Key: JAMES-3870 > URL: https://issues.apache.org/jira/browse/JAMES-3870 > Project: James Server > Issue Type: Improvement > Components: IMAPServer >Reporter: Benoit Tellier >Priority: Major > Fix For: 3.8.0 > > Attachments: master-list-responses-with-flush.png, > pr-list-responses-without-flush.png > > > Today each Imap response line is transmitted in a distinct TCP packet. > This causes a lot of network overhead as > => TCP headers are added for each response line. To give an idea a LIST > response line is 35 bytes long but result in a 101 bytes TCP frame so a 188% > overcost > => TCP ack are conducted for each line independently. An ACK is 66 bytes, > This is especially problematic for LIST, FETCH commands that actually result > in many (100, 1000, maybe millions) response lines. > See attach screenshot: master-list-responses-with-flush.png demonstrating > this. > We should try to limit the calls to "flush" with Netty, and force the flush > only once per IMAP command (at the end of processing). Netty is free to > transmit some data earlier if it's buffer states requires it. > The entire mailbox list take 1 packet to transmit (1420 btes total for 41 > mailboxes so ~35 bytes per mailbox) and a single ACK (66 bytes). > See attach screenshot: pr-list-responses-without-flush.png demonstrating this. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3869) JSPF mailet should skip private networks in addition to 127.0.0.1 and use correct HELO
[ https://issues.apache.org/jira/browse/JAMES-3869?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] ouvtam updated JAMES-3869: -- Attachment: image.gif > JSPF mailet should skip private networks in addition to 127.0.0.1 and use > correct HELO > -- > > Key: JAMES-3869 > URL: https://issues.apache.org/jira/browse/JAMES-3869 > Project: James Server > Issue Type: Improvement >Reporter: ouvtam >Priority: Minor > Time Spent: 10m > Remaining Estimate: 0h > > h3. Private Networks > The JSPF mailet skips SPF checks for remote address 127.0.0.1. > In addition, the mailet should also skip SPF check for following private > class networks: > * 127.0.0.0/8 > * 10.0.0.0/8 > * 172.16.0.0 – 172.31.255.255 > * 192.168.0.0/16 > Make it configurable to add more flexibility to exclude other networks. > h3. HELO Check > Currently the SPF HELO check uses the remote address instead of the HELO > provided by the SMTP session. The SPF HELO check gets important for null > senders (e.g. bounces) when no sender address is available. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3869) JSPF mailet should skip private networks in addition to 127.0.0.1 and use correct HELO
[ https://issues.apache.org/jira/browse/JAMES-3869?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] ouvtam updated JAMES-3869: -- Attachment: (was: image.gif) > JSPF mailet should skip private networks in addition to 127.0.0.1 and use > correct HELO > -- > > Key: JAMES-3869 > URL: https://issues.apache.org/jira/browse/JAMES-3869 > Project: James Server > Issue Type: Improvement >Reporter: ouvtam >Priority: Minor > Time Spent: 10m > Remaining Estimate: 0h > > h3. Private Networks > The JSPF mailet skips SPF checks for remote address 127.0.0.1. > In addition, the mailet should also skip SPF check for following private > class networks: > * 127.0.0.0/8 > * 10.0.0.0/8 > * 172.16.0.0 – 172.31.255.255 > * 192.168.0.0/16 > Make it configurable to add more flexibility to exclude other networks. > h3. HELO Check > Currently the SPF HELO check uses the remote address instead of the HELO > provided by the SMTP session. The SPF HELO check gets important for null > senders (e.g. bounces) when no sender address is available. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3869) JSPF mailet should skip private networks in addition to 127.0.0.1 and use correct HELO
[ https://issues.apache.org/jira/browse/JAMES-3869?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] ouvtam updated JAMES-3869: -- Description: h3. Private Networks The JSPF mailet skips SPF checks for remote address 127.0.0.1. In addition, the mailet should also skip SPF check for following private class networks: * 127.0.0.0/8 * 10.0.0.0/8 * 172.16.0.0 – 172.31.255.255 * 192.168.0.0/16 Make it configurable to add more flexibility to exclude other networks. h3. HELO Check Currently the SPF HELO check uses the remote address instead of the HELO provided by the SMTP session. The SPF HELO check gets important for null senders (e.g. bounces) when no sender address is available. was: The JSPF mailet skips SPF checks for remote address 127.0.0.1. In addition, the mailet should also skip SPF check for following private class networks: * 127.0.0.0/8 * 10.0.0.0/8 * 172.16.0.0 – 172.31.255.255 * 192.168.0.0/16 Make it configurable to add more flexibility to exclude other networks. Summary: JSPF mailet should skip private networks in addition to 127.0.0.1 and use correct HELO (was: JSPF mailet should skip private networks in addition to 127.0.0.1) > JSPF mailet should skip private networks in addition to 127.0.0.1 and use > correct HELO > -- > > Key: JAMES-3869 > URL: https://issues.apache.org/jira/browse/JAMES-3869 > Project: James Server > Issue Type: Improvement >Reporter: ouvtam >Priority: Minor > Time Spent: 10m > Remaining Estimate: 0h > > h3. Private Networks > The JSPF mailet skips SPF checks for remote address 127.0.0.1. > In addition, the mailet should also skip SPF check for following private > class networks: > * 127.0.0.0/8 > * 10.0.0.0/8 > * 172.16.0.0 – 172.31.255.255 > * 192.168.0.0/16 > Make it configurable to add more flexibility to exclude other networks. > h3. HELO Check > Currently the SPF HELO check uses the remote address instead of the HELO > provided by the SMTP session. The SPF HELO check gets important for null > senders (e.g. bounces) when no sender address is available. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3869) JSPF mailet should skip private networks in addition to 127.0.0.1
ouvtam created JAMES-3869: - Summary: JSPF mailet should skip private networks in addition to 127.0.0.1 Key: JAMES-3869 URL: https://issues.apache.org/jira/browse/JAMES-3869 Project: James Server Issue Type: Improvement Reporter: ouvtam The JSPF mailet skips SPF checks for remote address 127.0.0.1. In addition, the mailet should also skip SPF check for following private class networks: * 127.0.0.0/8 * 10.0.0.0/8 * 172.16.0.0 – 172.31.255.255 * 192.168.0.0/16 Make it configurable to add more flexibility to exclude other networks. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3868) Cannot handle IMAP PLAIN login with password longer than 255 char
Niko Usai created JAMES-3868: Summary: Cannot handle IMAP PLAIN login with password longer than 255 char Key: JAMES-3868 URL: https://issues.apache.org/jira/browse/JAMES-3868 Project: James Server Issue Type: Bug Affects Versions: 3.6.0 Reporter: Niko Usai There is a bug, in my opinion, in how `AuthenticateProcessor` handles PLAIN login omitting authorization identity. The fact is when authorization identity is blank the password field is parsed with Username.of() that has the 255 char limitation, and it expects to raise an exception when looking for the 3rd missing argument, where the password should be, which has not this limitation. These leads to an "IllegalArgumentException" of the Username class creating an invalid AuthenticationAttempt. {code:java} String userpass = new String(Base64.getDecoder().decode(initialClientResponse)); StringTokenizer authTokenizer = new StringTokenizer(userpass, "\0"); String token1 = authTokenizer.nextToken(); // Authorization Identity token2 = authTokenizer.nextToken(); // Authentication Identity try { return delegation(Username.of(token1), Username.of(token2), authTokenizer.nextToken()); } catch (java.util.NoSuchElementException ignored) { // If we got here, this is what happened. RFC 2595 // says that "the client may leave the authorization {code} -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3867) Make IMAP modular
Benoit Tellier created JAMES-3867: - Summary: Make IMAP modular Key: JAMES-3867 URL: https://issues.apache.org/jira/browse/JAMES-3867 Project: James Server Issue Type: Improvement Components: guice, IMAPServer Reporter: Benoit Tellier Fix For: 3.8.0 As an IMAP administrator I want to customize IMAP processing easily. This includes removing/adding/changing IMAP processors/encoders/decoders. This allows the following use cases: - Add support for (potentially custom) IMAP extensions without recompiling James - Removing support for buggy commands easily, if any - Enforcing "read only behaviour" - Customizing some commands. For instance one of my customers got a tricky non standard IMAP authenticate command to handle. The admin would specify a list of ImapPackage (which is itself a bundle of processors/encoders/decoders) from the imapserver.xml configuration file. By default, if unspecified the default IMAP package would be used. Both ImapPackage/processors/encoders/decoders loading would leverage the extensions-jars mechanism. h3. Definition of done Write an exemple of such modularization writing a PING / PONG command and load it into a James server. {code:java} A001 PING whatever * PONG whatever A001 OK PING command completed. {code} -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3860) Rely on Files.createTempFile
[ https://issues.apache.org/jira/browse/JAMES-3860?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3860. - Resolution: Fixed > Rely on Files.createTempFile > > > Key: JAMES-3860 > URL: https://issues.apache.org/jira/browse/JAMES-3860 > Project: James Server > Issue Type: Improvement > Components: James Core >Reporter: Benoit Tellier >Priority: Major > Fix For: 3.8.0, 3.7.3 > > Time Spent: 20m > Remaining Estimate: 0h > > This is the right way to do it in Java. Usage of File.createTempFile is not > idiomatic. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3862) Log4J/SLF4J Binding is broken in james-server-spring-app
[ https://issues.apache.org/jira/browse/JAMES-3862?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3862. - Resolution: Fixed > Log4J/SLF4J Binding is broken in james-server-spring-app > > > Key: JAMES-3862 > URL: https://issues.apache.org/jira/browse/JAMES-3862 > Project: James Server > Issue Type: Bug >Affects Versions: 3.8.0 >Reporter: Bernd Bartke >Priority: Major > Fix For: 3.7.3 > > Time Spent: 40m > Remaining Estimate: 0h > > Log4J/SLF4J Binding is broken in james-server-spring-app, starting with 3.7.2. > Server startup of 3.7.2: > {noformat} > C:\bin\james-server-spring-app-3.7.2\bin>run.bat > SLF4J: No SLF4J providers were found. > SLF4J: Defaulting to no-operation (NOP) logger implementation > SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details. > SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions 1.7.x > or earlier. > SLF4J: Ignoring binding found at > [jar:file:/C:/bin/james-server-spring-app-3.7.2/lib/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] > SLF4J: See https://www.slf4j.org/codes.html#ignoredBindings for an > explanation. > 15 James WARN [main] openjpa.Runtime - An error occurred while > registering a ClassTransformer with PersistenceUnitInfo: name 'James', root > URL [file:/C:/bin/james-server-spring-app-3.7.2/conf]. The error has been > consumed. To see it, set your openjpa.Runtime log level to TRACE. Load-time > class transformation will not be available. > 9281 James INFO [main] openjpa.Runtime - Starting OpenJPA 3.2.0 > {noformat} > Issue was introduced with commit 3460270c3a928da6ee650194a9d4f1a08e53947e by > TRAN at 2022-09-20: > slf4j.version has been changed from 1.7.36 to 2.0.1 > (!) SLF4J 2 requires updated SLF4J to Log4j Adapters: > SLF4J 2 ServiceLoader mechanism to find its logging backend > https://www.slf4j.org/faq.html#changesInVersion200 > https://logging.apache.org/log4j/2.x/log4j-slf4j-impl/ > {quote} > Due to a break in compatibility in the SLF4J binding, as of release 2.19.0 > two SLF4J to Log4j Adapters are provided. > ... > 2. {{log4j-slf4j2-impl}} should be used with SLF4J 2.0.x releases or newer. > {quote} > To fix the issue, the 3 pom.xml referencing artifactId {{log4j-slf4j-impl}} > should reference artifactId {{log4j-slf4j2-impl}} instead (- > {{log4j2.version}} is already set to {{2.19.0}}, ): > {noformat} > $ grep -r --include="pom.xml" "log4j-slf4j-impl" * > pom.xml:log4j-slf4j-impl > server/apps/spring-app/pom.xml: > log4j-slf4j-impl > server/container/spring/pom.xml: > log4j-slf4j-impl > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3859) Wrong starting sequence
[ https://issues.apache.org/jira/browse/JAMES-3859?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3859. - Resolution: Fixed > Wrong starting sequence > --- > > Key: JAMES-3859 > URL: https://issues.apache.org/jira/browse/JAMES-3859 > Project: James Server > Issue Type: Bug > Components: guice >Affects Versions: master >Reporter: Benoit Tellier >Priority: Major > Fix For: 3.8.0 > > Time Spent: 20m > Remaining Estimate: 0h > > h3. What happened? > At a customer, processing emails via LMTP started while the user repository > was not (yet) configured. > As a result, the resulting processing was faulty (until the right > configuration was applied). > The starting sequence I observed: > {code:java} > 09:47:04.784 [INFO ] o.a.j.m.i.JamesMailSpooler - init... > 09:47:04.784 [INFO ] o.a.j.m.i.JamesMailSpooler - Concurrency level is 20 > 09:47:04.789 [INFO ] o.a.j.m.i.JamesMailSpooler - Spooler started > 09:47:04.796 [INFO ] o.a.j.m.m.MailboxListenersLoaderImpl - Loading user > registered mailbox listeners > 09:47:04.797 [INFO ] o.a.j.m.m.MailboxListenersLoaderImpl - Loading user > registered mailbox listener > ClassName{name=org.apache.james.mailbox.cassandra.MailboxOperationLoggingListener} > 09:47:04.835 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service bound to: 0.0.0.0:0 > 09:47:04.836 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service is running on: interview1-HP-ProBook-440-G6 > 09:47:04.836 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service handler hello name is: interview1-HP-ProBook-440-G6 > 09:47:04.836 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service handler connection timeout is: 300 > 09:47:04.836 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service connection backlog is: 200 > 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service bound to: 0.0.0.0:0 > 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service is running on: interview1-HP-ProBook-440-G6 > 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service handler hello name is: interview1-HP-ProBook-440-G6 > 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service handler connection timeout is: 300 > 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service connection backlog is: 200 > 09:47:04.846 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - TLS > enabled with auth NONE using truststore null > 09:47:04.932 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init IMAP > Service done > 09:47:05.019 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init IMAP > Service done > 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP > Service bound to: 0.0.0.0:0 > 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP > Service is running on: interview1-HP-ProBook-440-G6 > 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP > Service handler hello name is: interview1-HP-ProBook-440-G6 > 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP > Service handler connection timeout is: 1200 > 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP > Service connection backlog is: 200 > 09:47:05.031 [INFO ] o.a.j.l.n.LMTPServer - No maximum message size is > enforced for this server. > 09:47:05.196 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init LMTP > Service done > 09:47:05.209 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 > Service bound to: 0.0.0.0:0 > 09:47:05.209 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 > Service is running on: interview1-HP-ProBook-440-G6 > 09:47:05.209 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 > Service handler hello name is: interview1-HP-ProBook-440-G6 > 09:47:05.209 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 > Service handler connection timeout is: 1200 > 09:47:05.210 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 > Service connection backlog is: 200 > 09:47:05.293 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init POP3 > Service done > 09:47:05.307 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP > Service bound to: 0.0.0.0:0 > 09:47:05.307 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP > Service is running on: interview1-HP-ProBook-440-G6 > 09:47:05.30
[jira] [Closed] (JAMES-3864) Unify vhost management with queues and RabbitMQ
[ https://issues.apache.org/jira/browse/JAMES-3864?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] René Cordier closed JAMES-3864. --- Resolution: Fixed The PR has been merged to fix this issue. What has been considered at the end is that the vhost should be declared in the uri. The vhost parameter in rabbitmq.properties is still present, but only used in special cases where there is bad formatted URIs making parsing not feasible (like with characters like '_') > Unify vhost management with queues and RabbitMQ > --- > > Key: JAMES-3864 > URL: https://issues.apache.org/jira/browse/JAMES-3864 > Project: James Server > Issue Type: Improvement >Reporter: René Cordier >Priority: Minor > Time Spent: 20m > Remaining Estimate: 0h > > Actually in James we have our queues that get assigned to the correct vhost > on rabbitmq but in two different ways: > - via the uri parameter in rabbitmq.properties, like: > {noformat} > amqp://{user}:{password}@{rabbit_host}:{rabbit_port}/{vhost} > {noformat} > - via the parameter `vhost` in rabbitmq.properties (like for the mail queues) > It's not really logical and confusing for users in general. We should: > - agree on one unified way to get the vhost for all queues (uri parsing or > vhost parameter) > - refactor the code following the consensus on the solution -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3866) ActiveMQ: memory leak in health check
ouvtam created JAMES-3866: - Summary: ActiveMQ: memory leak in health check Key: JAMES-3866 URL: https://issues.apache.org/jira/browse/JAMES-3866 Project: James Server Issue Type: Bug Components: Queue, webadmin Affects Versions: 3.7.1, 3.7.3 Reporter: ouvtam Fix For: 3.8.0 For documentation purposes this issue was created to let other James 3 (3.7.1 and above) users know about a memory leakage regarding ActiveMQ healthchecks. In short, James 3.7.1/3.7.2 is affected if: * ActiveMQ is used as message broker / JMS queue * Healthchecks are performed (see conf/healthcheck.properties) Workaround: * disabling recurrent healthcheck reports (webadmin + HTTP) See discussion and fix (master): [https://github.com/apache/james-project/commit/390be9e9e3d048d2e177aa2fdf6b6732035a7c16|https://github.com/apache/james-project/commit/390be9e9e3d048d2e177aa2fdf6b6732035a7c16] -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3865) How to export Gmail to PST in Easy Steps?
[ https://issues.apache.org/jira/browse/JAMES-3865?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3865. - Resolution: Invalid > How to export Gmail to PST in Easy Steps? > - > > Key: JAMES-3865 > URL: https://issues.apache.org/jira/browse/JAMES-3865 > Project: James Server > Issue Type: Task >Reporter: Nena >Priority: Major > > *Introduction:* Email backup is a top-security concern for users because > their data is their main component. Once you take the backup of mailbox > emails, you can overcome the data loss. Users can [export Gmail to > PST|https://yotasoftware.com/blogs/convert-gmail-email-to-pst/] for Outlook > using various methods. > In this blog, we will be going to discuss the methods to back up Gmail > account data in Outlook PST format and store local copies of email messages, > calendar events, and other items into your local PC. > h2. Why Users want to Export Gmail to PST? > There are a number of reasons why you might need to backup your Gmail emails > to PST. Perhaps you're leaving your current job and want to take your emails > with you. Or maybe you're worried about losing important data if your account > is ever hacked. Whatever the reason, there are a few different ways you can > go about backing up your Gmail emails to PST. > The first and most obvious method is to simply export your emails from Gmail > to PST. This can be done using various email clients like Microsoft Outlook > or Mozilla Thunderbird. However, this method only backs up your emails and > doesn't include any of your other data, like your contacts or calendar. > Another method is to use a third-party backup service, like [Yota Gmail > Backup Tool|https://yotasoftware.com/gmail-backup/]. This tool will backup > your entire Gmail account, including your emails, contacts, and calendar. > h2. Professional tool to Convert Gmail Emails to PST Format > Looking for a way to backup your Gmail data? Look no further than Yota Gmail > Backup Wizard! It is a quick and easy way to backup your Gmail data so you > never have to worry about losing important emails or data again. > With this [Email Backup Wizard|https://yotasoftware.com/email-backup/], you > can choose to backup your entire Gmail account or just selected folders. You > can also schedule regular backups so you can set it and forget it. And if you > ever need to restore your data, you can do so with just a few clicks. > So why wait? Start backing up your Gmail data today with Yota Gmail Backup > Software! > *You May Also Read:* > [Gmail Attachment > Extractor|https://yotasoftware.com/blogs/extract-all-attachments-from-gmail/] > [Convert Gmail to > PDF|https://yotasoftware.com/blogs/print-multiple-gmail-emails-in-pdf/] > [Import Gmail to Office > 365|https://yotasoftware.com/blogs/import-gmail-to-office-365/] > [Migrate Gmail to > Thunderbird|https://yotasoftware.com/blogs/add-gmail-account-to-thunderbird-with-attachments/] > [Import Gmail to Yahoo > |https://yotasoftware.com/blogs/transfer-gmail-to-yahoo-mail/] > > -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3865) How to export Gmail to PST in Easy Steps?
[ https://issues.apache.org/jira/browse/JAMES-3865?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nena updated JAMES-3865: Description: *Introduction:* Email backup is a top-security concern for users because their data is their main component. Once you take the backup of mailbox emails, you can overcome the data loss. Users can [export Gmail to PST|https://yotasoftware.com/blogs/convert-gmail-email-to-pst/] for Outlook using various methods. In this blog, we will be going to discuss the methods to back up Gmail account data in Outlook PST format and store local copies of email messages, calendar events, and other items into your local PC. h2. Why Users want to Export Gmail to PST? There are a number of reasons why you might need to backup your Gmail emails to PST. Perhaps you're leaving your current job and want to take your emails with you. Or maybe you're worried about losing important data if your account is ever hacked. Whatever the reason, there are a few different ways you can go about backing up your Gmail emails to PST. The first and most obvious method is to simply export your emails from Gmail to PST. This can be done using various email clients like Microsoft Outlook or Mozilla Thunderbird. However, this method only backs up your emails and doesn't include any of your other data, like your contacts or calendar. Another method is to use a third-party backup service, like [Yota Gmail Backup Tool|https://yotasoftware.com/gmail-backup/]. This tool will backup your entire Gmail account, including your emails, contacts, and calendar. h2. Professional tool to Convert Gmail Emails to PST Format Looking for a way to backup your Gmail data? Look no further than Yota Gmail Backup Wizard! It is a quick and easy way to backup your Gmail data so you never have to worry about losing important emails or data again. With this [Email Backup Wizard|https://yotasoftware.com/email-backup/], you can choose to backup your entire Gmail account or just selected folders. You can also schedule regular backups so you can set it and forget it. And if you ever need to restore your data, you can do so with just a few clicks. So why wait? Start backing up your Gmail data today with Yota Gmail Backup Software! *You May Also Read:* [Gmail Attachment Extractor|https://yotasoftware.com/blogs/extract-all-attachments-from-gmail/] [Convert Gmail to PDF|https://yotasoftware.com/blogs/print-multiple-gmail-emails-in-pdf/] [Import Gmail to Office 365|https://yotasoftware.com/blogs/import-gmail-to-office-365/] [Migrate Gmail to Thunderbird|https://yotasoftware.com/blogs/add-gmail-account-to-thunderbird-with-attachments/] [Import Gmail to Yahoo |https://yotasoftware.com/blogs/transfer-gmail-to-yahoo-mail/] was: *Introduction:* Email backup is a top-security concern for users because their data is their main component. Once you take the backup of mailbox emails, you can overcome the data loss. Users can [export Gmail to PST|https://yotasoftware.com/blogs/convert-gmail-email-to-pst/] for Outlook using various methods. In this blog, we will be going to discuss the methods to back up Gmail account data in Outlook PST format and store local copies of email messages, calendar events, and other items into your local PC. h2. Why Users want to Export Gmail to PST? There are a number of reasons why you might need to backup your Gmail emails to PST. Perhaps you're leaving your current job and want to take your emails with you. Or maybe you're worried about losing important data if your account is ever hacked. Whatever the reason, there are a few different ways you can go about backing up your Gmail emails to PST. The first and most obvious method is to simply export your emails from Gmail to PST. This can be done using various email clients like Microsoft Outlook or Mozilla Thunderbird. However, this method only backs up your emails and doesn't include any of your other data, like your contacts or calendar. Another method is to use a third-party backup service, like [Yota Gmail Backup Tool|https://yotasoftware.com/gmail-backup/]. This tool will backup your entire Gmail account, including your emails, contacts, and calendar. h2. Professional tool to Convert Gmail Emails to PST Format Looking for a way to backup your Gmail data? Look no further than Yota Gmail Backup Wizard! It is a quick and easy way to backup your Gmail data so you never have to worry about losing important emails or data again. With this [Email Backup Wizard|https://yotasoftware.com/email-backup/], you can choose to backup your entire Gmail account or just selected folders. You can also schedule regular backups so you can set it and forget it. And if you ever need to restore your data, you can do so with just a few clicks. So why wait? Start backing up your Gmail data today with Yota Gmail Backup Software! > How to export Gmail to PST in E
[jira] [Created] (JAMES-3865) How to export Gmail to PST in Easy Steps?
Nena created JAMES-3865: --- Summary: How to export Gmail to PST in Easy Steps? Key: JAMES-3865 URL: https://issues.apache.org/jira/browse/JAMES-3865 Project: James Server Issue Type: Task Reporter: Nena *Introduction:* Email backup is a top-security concern for users because their data is their main component. Once you take the backup of mailbox emails, you can overcome the data loss. Users can [export Gmail to PST|https://yotasoftware.com/blogs/convert-gmail-email-to-pst/] for Outlook using various methods. In this blog, we will be going to discuss the methods to back up Gmail account data in Outlook PST format and store local copies of email messages, calendar events, and other items into your local PC. h2. Why Users want to Export Gmail to PST? There are a number of reasons why you might need to backup your Gmail emails to PST. Perhaps you're leaving your current job and want to take your emails with you. Or maybe you're worried about losing important data if your account is ever hacked. Whatever the reason, there are a few different ways you can go about backing up your Gmail emails to PST. The first and most obvious method is to simply export your emails from Gmail to PST. This can be done using various email clients like Microsoft Outlook or Mozilla Thunderbird. However, this method only backs up your emails and doesn't include any of your other data, like your contacts or calendar. Another method is to use a third-party backup service, like [Yota Gmail Backup Tool|https://yotasoftware.com/gmail-backup/]. This tool will backup your entire Gmail account, including your emails, contacts, and calendar. h2. Professional tool to Convert Gmail Emails to PST Format Looking for a way to backup your Gmail data? Look no further than Yota Gmail Backup Wizard! It is a quick and easy way to backup your Gmail data so you never have to worry about losing important emails or data again. With this [Email Backup Wizard|https://yotasoftware.com/email-backup/], you can choose to backup your entire Gmail account or just selected folders. You can also schedule regular backups so you can set it and forget it. And if you ever need to restore your data, you can do so with just a few clicks. So why wait? Start backing up your Gmail data today with Yota Gmail Backup Software! -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3841) ActiveMQ: Collect statistics and publish metrics
[ https://issues.apache.org/jira/browse/JAMES-3841?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] René Cordier closed JAMES-3841. --- Fix Version/s: 3.8.0 Resolution: Fixed [https://github.com/apache/james-project/pull/1290] is fixing this and has been merged > ActiveMQ: Collect statistics and publish metrics > > > Key: JAMES-3841 > URL: https://issues.apache.org/jira/browse/JAMES-3841 > Project: James Server > Issue Type: Improvement > Components: Queue >Reporter: ouvtam >Priority: Minor > Fix For: 3.8.0 > > Time Spent: 4h > Remaining Estimate: 0h > > Currently, only some James metrics are available for ActiveMQ which are > exposed in WebAdmin. Namely, enqueuedMail and dequeuedMail for each > registered queue (i.e. spool and outgoing). Some ActiveMQ broker stats > (memoryUsage, memoryLimit, storeUsage, storeLimit, maxEnqueueTime, etc.) are > currently not available. > According to [https://activemq.apache.org/statisticsplugin.html] ActiveMQ > Metrics can be obtained through subscription or by polling regularly. At the > moment the statistics plugin is only used to get the size of a queue. > I propose to poll ActiveMQ statistics via ActiveMQHealthCheck and publish > those as metrics. Currently, the health check creates a session and checks if > no exception occurred. > What do you think? > -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3864) Unify vhost management with queues and RabbitMQ
[ https://issues.apache.org/jira/browse/JAMES-3864?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] René Cordier updated JAMES-3864: Description: Actually in James we have our queues that get assigned to the correct vhost on rabbitmq but in two different ways: - via the uri parameter in rabbitmq.properties, like: {noformat} "amqp://{user}:{password}@{rabbit_host}:{rabbit_port}/{vhost}" {noformat} - via the parameter `vhost` in rabbitmq.properties (like for the mail queues) It's not really logical and confusing for users in general. We should: - agree on one unified way to get the vhost for all queues (uri parsing or vhost parameter) - refactor the code following the consensus on the solution was: Actually in James we have our queues that get assigned to the correct vhost on rabbitmq but in two different ways: - via the uri parameter in rabbitmq.properties (like `amqp://{user}:{password}@{rabbit_host}:{rabbit_port}/{vhost}`) - via the parameter `vhost` in rabbitmq.properties (like for the mail queues) It's not really logical and confusing for users in general. We should: - agree on one unified way to get the vhost for all queues (uri parsing or vhost parameter) - refactor the code following the consensus on the solution > Unify vhost management with queues and RabbitMQ > --- > > Key: JAMES-3864 > URL: https://issues.apache.org/jira/browse/JAMES-3864 > Project: James Server > Issue Type: Improvement >Reporter: René Cordier >Priority: Minor > > Actually in James we have our queues that get assigned to the correct vhost > on rabbitmq but in two different ways: > - via the uri parameter in rabbitmq.properties, like: > {noformat} > "amqp://{user}:{password}@{rabbit_host}:{rabbit_port}/{vhost}" > {noformat} > - via the parameter `vhost` in rabbitmq.properties (like for the mail queues) > It's not really logical and confusing for users in general. We should: > - agree on one unified way to get the vhost for all queues (uri parsing or > vhost parameter) > - refactor the code following the consensus on the solution -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3864) Unify vhost management with queues and RabbitMQ
[ https://issues.apache.org/jira/browse/JAMES-3864?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] René Cordier updated JAMES-3864: Description: Actually in James we have our queues that get assigned to the correct vhost on rabbitmq but in two different ways: - via the uri parameter in rabbitmq.properties, like: {noformat} amqp://{user}:{password}@{rabbit_host}:{rabbit_port}/{vhost} {noformat} - via the parameter `vhost` in rabbitmq.properties (like for the mail queues) It's not really logical and confusing for users in general. We should: - agree on one unified way to get the vhost for all queues (uri parsing or vhost parameter) - refactor the code following the consensus on the solution was: Actually in James we have our queues that get assigned to the correct vhost on rabbitmq but in two different ways: - via the uri parameter in rabbitmq.properties, like: {noformat} "amqp://{user}:{password}@{rabbit_host}:{rabbit_port}/{vhost}" {noformat} - via the parameter `vhost` in rabbitmq.properties (like for the mail queues) It's not really logical and confusing for users in general. We should: - agree on one unified way to get the vhost for all queues (uri parsing or vhost parameter) - refactor the code following the consensus on the solution > Unify vhost management with queues and RabbitMQ > --- > > Key: JAMES-3864 > URL: https://issues.apache.org/jira/browse/JAMES-3864 > Project: James Server > Issue Type: Improvement >Reporter: René Cordier >Priority: Minor > > Actually in James we have our queues that get assigned to the correct vhost > on rabbitmq but in two different ways: > - via the uri parameter in rabbitmq.properties, like: > {noformat} > amqp://{user}:{password}@{rabbit_host}:{rabbit_port}/{vhost} > {noformat} > - via the parameter `vhost` in rabbitmq.properties (like for the mail queues) > It's not really logical and confusing for users in general. We should: > - agree on one unified way to get the vhost for all queues (uri parsing or > vhost parameter) > - refactor the code following the consensus on the solution -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3864) Unify vhost management with queues and RabbitMQ
René Cordier created JAMES-3864: --- Summary: Unify vhost management with queues and RabbitMQ Key: JAMES-3864 URL: https://issues.apache.org/jira/browse/JAMES-3864 Project: James Server Issue Type: Improvement Reporter: René Cordier Actually in James we have our queues that get assigned to the correct vhost on rabbitmq but in two different ways: - via the uri parameter in rabbitmq.properties (like `amqp://{user}:{password}@{rabbit_host}:{rabbit_port}/{vhost}`) - via the parameter `vhost` in rabbitmq.properties (like for the mail queues) It's not really logical and confusing for users in general. We should: - agree on one unified way to get the vhost for all queues (uri parsing or vhost parameter) - refactor the code following the consensus on the solution -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3863) JMAP OPTIONS endpoints should allow caching
Tran Hong Quan created JAMES-3863: - Summary: JMAP OPTIONS endpoints should allow caching Key: JAMES-3863 URL: https://issues.apache.org/jira/browse/JAMES-3863 Project: James Server Issue Type: Improvement Reporter: Tran Hong Quan JMAP OPTIONS endpoints should return the `Access-Control-Max-Age` response header. By doing that client can cache the CORS information and avoid duplicated calls to OPTIONS endpoints therefore better JMAP performance. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3841) ActiveMQ: Collect statistics and publish metrics
[ https://issues.apache.org/jira/browse/JAMES-3841?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17639727#comment-17639727 ] ouvtam commented on JAMES-3841: --- Here some exemplary log metrics: * broker metrics * per-queue metrics (NEW) * timer metric how long it took the fetch the metrics -> *._time (NEW) {code:java} 23:06:06.266 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.consumerCount, value=40 23:06:06.266 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.dequeueCount, value=0 23:06:06.266 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.dispatchCount, value=10508 23:06:06.266 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.enqueueCount, value=1487 23:06:06.266 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.expiredCount, value=0 23:06:06.267 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.inflightCount, value=10508 23:06:06.268 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.lastUpdate, value=1669590365575 23:06:06.268 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.maxEnqueueTime, value=143.0 23:06:06.268 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.memoryLimit, value=1073741824 23:06:06.268 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.memoryPercentUsage, value=0 23:06:06.269 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.memoryUsage, value=0 23:06:06.269 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.messagesCached, value=0 23:06:06.269 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.minEnqueueTime, value=1.0 23:06:06.269 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.producerCount, value=3 23:06:06.269 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.size, value=0 23:06:06.269 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.storeLimit, value=16339816520 23:06:06.270 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.storePercentUsage, value=0 23:06:06.270 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.storeUsage, value=135762 23:06:06.270 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.tempLimit, value=16339804160 23:06:06.270 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.tempPercentUsage, value=0 23:06:06.270 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Broker.tempUsage, value=0 23:06:06.270 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.outgoing.averageEnqueueTime, value=0.0 23:06:06.270 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.outgoing.consumerCount, value=1 23:06:06.270 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.outgoing.dequeueCount, value=0 23:06:06.270 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.outgoing.dispatchCount, value=0 23:06:06.271 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.outgoing.enqueueCount, value=0 23:06:06.271 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.outgoing.expiredCount, value=0 23:06:06.271 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.outgoing.inflightCount, value=0 23:06:06.271 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.outgoing.lastUpdate, value=1669590365533 23:06:06.271 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.outgoing.maxEnqueueTime, value=0.0 23:06:06.271 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.outgoing.memoryLimit, value=1073741824 23:06:06.271 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.outgoing.messagesCached, value=0 23:06:06.271 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.outgoing.minEnqueueTime, value=0.0 23:06:06.271 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.outgoing.producerCount, value=1 23:06:06.272 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.outgoing.size, value=0 23:06:06.272 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.spool.averageEnqueueTime, value=0.0 23:06:06.272 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.spool.consumerCount, value=1 23:06:06.272 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.spool.dequeueCount, value=0 23:06:06.272 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.spool.dispatchCount, value=0 23:06:06.273 [DEBUG] o.a.j.metrics - type=GAUGE, name=ActiveMQ.Statistics.Destination.spool.enqueueCount, value=0 23:06:06.273 [DEBUG] o.a.j.metrics - type=GA
[jira] [Closed] (JAMES-3844) Issue with docker-compose files and opensearch configuration
[ https://issues.apache.org/jira/browse/JAMES-3844?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3844. - Resolution: Fixed > Issue with docker-compose files and opensearch configuration > > > Key: JAMES-3844 > URL: https://issues.apache.org/jira/browse/JAMES-3844 > Project: James Server > Issue Type: Bug > Components: configuration >Affects Versions: master > Environment: ubuntu 22.04, docker-compose 1.29.2 docker 20.10.21 >Reporter: Hitesh C >Priority: Major > Labels: easyfix, newbie > Original Estimate: 72h > Time Spent: 10m > Remaining Estimate: 71h 50m > > There are issues with configuration docker-compose files in the following path > * server/apps/cassandra-app/docker-compose.yml > * server/apps/distributed-app/docker-compose.yml > * server/apps/distributed-pop3-app/docker-compose.yml > * third-party/clamav/docker-compose.yml > They refer to elasticsearch in james dependencies, whereas elasticsearch has > been updated to opensearch elsewhere. > > Upon updating the depends_on parameter, the setup doesn't start. > Upon fixing this, the elasticsearch client in james server isnt able to > connect to opensearch instance -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3861) EmailDelivery push is used too much
[ https://issues.apache.org/jira/browse/JAMES-3861?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3861. - Fix Version/s: 3.8.0 Resolution: Fixed > EmailDelivery push is used too much > --- > > Key: JAMES-3861 > URL: https://issues.apache.org/jira/browse/JAMES-3861 > Project: James Server > Issue Type: Improvement > Components: JMAP >Reporter: Tran Hong Quan >Assignee: Antoine Duprat >Priority: Major > Fix For: 3.8.0 > > Time Spent: 0.5h > Remaining Estimate: 0h > > As of today, we push an EmailDelivery for each "added" event. > Yet, added event is used for copies, move, saving draft, sending email... In > addition to received new emails. > We should revisit the APIs of `MessageManager::append` in order to allow > passing a bit more context. This context would need to be carried other in > the event system. > # Definition of Done > JMAP integration test showing that EmailDelivery` state change is reserved to > receiving email... > # API proposal > Add a `isDelivery` field to the append command, defaulting to false. > Add a isDelivery field to the `Added` event, defaulting to false. > Ensure LocalDelivery sets the isDelivery to true. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3845) HP Solution Center Download Windows
[ https://issues.apache.org/jira/browse/JAMES-3845?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3845. - Resolution: Fixed > HP Solution Center Download Windows > --- > > Key: JAMES-3845 > URL: https://issues.apache.org/jira/browse/JAMES-3845 > Project: James Server > Issue Type: Bug >Reporter: Alpha jenner >Priority: Major > -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3862) Log4J/SLF4J Binding is broken in james-server-spring-app
[ https://issues.apache.org/jira/browse/JAMES-3862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17638302#comment-17638302 ] Bernd Bartke commented on JAMES-3862: - Hi Benoit, pull request created: https://github.com/apache/james-project/pull/1333 It has been a bit tricky to get log4j-core-2.19.0.jar to target/appassembler/lib/ Now maven-dependency-plugin is copying the runtime dependency to lib dir. > Log4J/SLF4J Binding is broken in james-server-spring-app > > > Key: JAMES-3862 > URL: https://issues.apache.org/jira/browse/JAMES-3862 > Project: James Server > Issue Type: Bug >Affects Versions: 3.8.0 >Reporter: Bernd Bartke >Priority: Major > Fix For: 3.7.3 > > Time Spent: 10m > Remaining Estimate: 0h > > Log4J/SLF4J Binding is broken in james-server-spring-app, starting with 3.7.2. > Server startup of 3.7.2: > {noformat} > C:\bin\james-server-spring-app-3.7.2\bin>run.bat > SLF4J: No SLF4J providers were found. > SLF4J: Defaulting to no-operation (NOP) logger implementation > SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details. > SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions 1.7.x > or earlier. > SLF4J: Ignoring binding found at > [jar:file:/C:/bin/james-server-spring-app-3.7.2/lib/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] > SLF4J: See https://www.slf4j.org/codes.html#ignoredBindings for an > explanation. > 15 James WARN [main] openjpa.Runtime - An error occurred while > registering a ClassTransformer with PersistenceUnitInfo: name 'James', root > URL [file:/C:/bin/james-server-spring-app-3.7.2/conf]. The error has been > consumed. To see it, set your openjpa.Runtime log level to TRACE. Load-time > class transformation will not be available. > 9281 James INFO [main] openjpa.Runtime - Starting OpenJPA 3.2.0 > {noformat} > Issue was introduced with commit 3460270c3a928da6ee650194a9d4f1a08e53947e by > TRAN at 2022-09-20: > slf4j.version has been changed from 1.7.36 to 2.0.1 > (!) SLF4J 2 requires updated SLF4J to Log4j Adapters: > SLF4J 2 ServiceLoader mechanism to find its logging backend > https://www.slf4j.org/faq.html#changesInVersion200 > https://logging.apache.org/log4j/2.x/log4j-slf4j-impl/ > {quote} > Due to a break in compatibility in the SLF4J binding, as of release 2.19.0 > two SLF4J to Log4j Adapters are provided. > ... > 2. {{log4j-slf4j2-impl}} should be used with SLF4J 2.0.x releases or newer. > {quote} > To fix the issue, the 3 pom.xml referencing artifactId {{log4j-slf4j-impl}} > should reference artifactId {{log4j-slf4j2-impl}} instead (- > {{log4j2.version}} is already set to {{2.19.0}}, ): > {noformat} > $ grep -r --include="pom.xml" "log4j-slf4j-impl" * > pom.xml:log4j-slf4j-impl > server/apps/spring-app/pom.xml: > log4j-slf4j-impl > server/container/spring/pom.xml: > log4j-slf4j-impl > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3862) Log4J/SLF4J Binding is broken in james-server-spring-app
[ https://issues.apache.org/jira/browse/JAMES-3862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17638244#comment-17638244 ] Benoit Tellier commented on JAMES-3862: --- Hello, Do you think you can open a pull request on this topic? > Log4J/SLF4J Binding is broken in james-server-spring-app > > > Key: JAMES-3862 > URL: https://issues.apache.org/jira/browse/JAMES-3862 > Project: James Server > Issue Type: Bug >Affects Versions: 3.8.0 >Reporter: Bernd Bartke >Priority: Major > Fix For: 3.7.3 > > > Log4J/SLF4J Binding is broken in james-server-spring-app, starting with 3.7.2. > Server startup of 3.7.2: > {noformat} > C:\bin\james-server-spring-app-3.7.2\bin>run.bat > SLF4J: No SLF4J providers were found. > SLF4J: Defaulting to no-operation (NOP) logger implementation > SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details. > SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions 1.7.x > or earlier. > SLF4J: Ignoring binding found at > [jar:file:/C:/bin/james-server-spring-app-3.7.2/lib/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] > SLF4J: See https://www.slf4j.org/codes.html#ignoredBindings for an > explanation. > 15 James WARN [main] openjpa.Runtime - An error occurred while > registering a ClassTransformer with PersistenceUnitInfo: name 'James', root > URL [file:/C:/bin/james-server-spring-app-3.7.2/conf]. The error has been > consumed. To see it, set your openjpa.Runtime log level to TRACE. Load-time > class transformation will not be available. > 9281 James INFO [main] openjpa.Runtime - Starting OpenJPA 3.2.0 > {noformat} > Issue was introduced with commit 3460270c3a928da6ee650194a9d4f1a08e53947e by > TRAN at 2022-09-20: > slf4j.version has been changed from 1.7.36 to 2.0.1 > (!) SLF4J 2 requires updated SLF4J to Log4j Adapters: > SLF4J 2 ServiceLoader mechanism to find its logging backend > https://www.slf4j.org/faq.html#changesInVersion200 > https://logging.apache.org/log4j/2.x/log4j-slf4j-impl/ > {quote} > Due to a break in compatibility in the SLF4J binding, as of release 2.19.0 > two SLF4J to Log4j Adapters are provided. > ... > 2. {{log4j-slf4j2-impl}} should be used with SLF4J 2.0.x releases or newer. > {quote} > To fix the issue, the 3 pom.xml referencing artifactId {{log4j-slf4j-impl}} > should reference artifactId {{log4j-slf4j2-impl}} instead (- > {{log4j2.version}} is already set to {{2.19.0}}, ): > {noformat} > $ grep -r --include="pom.xml" "log4j-slf4j-impl" * > pom.xml:log4j-slf4j-impl > server/apps/spring-app/pom.xml: > log4j-slf4j-impl > server/container/spring/pom.xml: > log4j-slf4j-impl > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3862) Log4J/SLF4J Binding is broken in james-server-spring-app
[ https://issues.apache.org/jira/browse/JAMES-3862?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Bernd Bartke updated JAMES-3862: Description: Log4J/SLF4J Binding is broken in james-server-spring-app, starting with 3.7.2. Server startup of 3.7.2: {noformat} C:\bin\james-server-spring-app-3.7.2\bin>run.bat SLF4J: No SLF4J providers were found. SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details. SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions 1.7.x or earlier. SLF4J: Ignoring binding found at [jar:file:/C:/bin/james-server-spring-app-3.7.2/lib/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See https://www.slf4j.org/codes.html#ignoredBindings for an explanation. 15 James WARN [main] openjpa.Runtime - An error occurred while registering a ClassTransformer with PersistenceUnitInfo: name 'James', root URL [file:/C:/bin/james-server-spring-app-3.7.2/conf]. The error has been consumed. To see it, set your openjpa.Runtime log level to TRACE. Load-time class transformation will not be available. 9281 James INFO [main] openjpa.Runtime - Starting OpenJPA 3.2.0 {noformat} Issue was introduced with commit 3460270c3a928da6ee650194a9d4f1a08e53947e by TRAN at 2022-09-20: slf4j.version has been changed from 1.7.36 to 2.0.1 (!) SLF4J 2 requires updated SLF4J to Log4j Adapters: SLF4J 2 ServiceLoader mechanism to find its logging backend https://www.slf4j.org/faq.html#changesInVersion200 https://logging.apache.org/log4j/2.x/log4j-slf4j-impl/ {quote} Due to a break in compatibility in the SLF4J binding, as of release 2.19.0 two SLF4J to Log4j Adapters are provided. ... 2. {{log4j-slf4j2-impl}} should be used with SLF4J 2.0.x releases or newer. {quote} To fix the issue, the 3 pom.xml referencing artifactId {{log4j-slf4j-impl}} should reference artifactId {{log4j-slf4j2-impl}} instead (- {{log4j2.version}} is already set to {{2.19.0}}, ): {noformat} $ grep -r --include="pom.xml" "log4j-slf4j-impl" * pom.xml:log4j-slf4j-impl server/apps/spring-app/pom.xml: log4j-slf4j-impl server/container/spring/pom.xml: log4j-slf4j-impl {noformat} was: Log4J/SLF4J Binding is broken in james-server-spring-app, starting with 3.7.2. Server startup of 3.7.2: {noformat} C:\bin\james-server-spring-app-3.7.2\bin>run.bat SLF4J: No SLF4J providers were found. SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details. SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions 1.7.x or earlier. SLF4J: Ignoring binding found at [jar:file:/C:/bin/james-server-spring-app-3.7.2/lib/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See https://www.slf4j.org/codes.html#ignoredBindings for an explanation. 15 James WARN [main] openjpa.Runtime - An error occurred while registering a ClassTransformer with PersistenceUnitInfo: name 'James', root URL [file:/C:/bin/james-server-spring-app-3.7.2/conf]. The error has been consumed. To see it, set your openjpa.Runtime log level to TRACE. Load-time class transformation will not be available. 9281 James INFO [main] openjpa.Runtime - Starting OpenJPA 3.2.0 {noformat} Issue was introduced with commit 3460270c3a928da6ee650194a9d4f1a08e53947e by TRAN at 2022-09-20: slf4j.version has been changed from 1.7.36 to 2.0.1 (!) SLF4J 2 requires updated SLF4J to Log4j Adapters: SLF4J 2 ServiceLoader mechanism to find its logging backend https://www.slf4j.org/faq.html#changesInVersion200 https://logging.apache.org/log4j/2.x/log4j-slf4j-impl/ {quote} {{log4j-slf4j2-impl}} should be used with SLF4J 2.0.x releases or newer. {quote} To fix the issue, the 3 pom.xml referencing artifactId {{log4j-slf4j-impl}} should reference artifactId {{log4j-slf4j2-impl}} instead - {{log4j2.version}} is alread set to {{2.19.0}}: {noformat} $ grep -r --include="pom.xml" "log4j-slf4j-impl" * pom.xml:log4j-slf4j-impl server/apps/spring-app/pom.xml: log4j-slf4j-impl server/container/spring/pom.xml: log4j-slf4j-impl {noformat} > Log4J/SLF4J Binding is broken in james-server-spring-app > > > Key: JAMES-3862 > URL: https://issues.apache.org/jira/browse/JAMES-3862 > Project: James Server > Issue Type: Bug >Affects Versions: 3.8.0 >Reporter: Bernd Bartke >Priority: Major > Fix For: 3.7.3 > > > Log4J/SLF4J Binding is broken in james-server-spring-app, starting with 3.7.2. > Server startup of 3.7.2: > {noformat} > C:\bin\james-server-spring-app-3.7.2\bin
[jira] [Created] (JAMES-3862) Log4J/SLF4J Binding is broken in james-server-spring-app
Bernd Bartke created JAMES-3862: --- Summary: Log4J/SLF4J Binding is broken in james-server-spring-app Key: JAMES-3862 URL: https://issues.apache.org/jira/browse/JAMES-3862 Project: James Server Issue Type: Bug Affects Versions: 3.8.0 Reporter: Bernd Bartke Fix For: 3.7.3 Log4J/SLF4J Binding is broken in james-server-spring-app, starting with 3.7.2. Server startup of 3.7.2: {noformat} C:\bin\james-server-spring-app-3.7.2\bin>run.bat SLF4J: No SLF4J providers were found. SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details. SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions 1.7.x or earlier. SLF4J: Ignoring binding found at [jar:file:/C:/bin/james-server-spring-app-3.7.2/lib/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See https://www.slf4j.org/codes.html#ignoredBindings for an explanation. 15 James WARN [main] openjpa.Runtime - An error occurred while registering a ClassTransformer with PersistenceUnitInfo: name 'James', root URL [file:/C:/bin/james-server-spring-app-3.7.2/conf]. The error has been consumed. To see it, set your openjpa.Runtime log level to TRACE. Load-time class transformation will not be available. 9281 James INFO [main] openjpa.Runtime - Starting OpenJPA 3.2.0 {noformat} Issue was introduced with commit 3460270c3a928da6ee650194a9d4f1a08e53947e by TRAN at 2022-09-20: slf4j.version has been changed from 1.7.36 to 2.0.1 (!) SLF4J 2 requires updated SLF4J to Log4j Adapters: SLF4J 2 ServiceLoader mechanism to find its logging backend https://www.slf4j.org/faq.html#changesInVersion200 https://logging.apache.org/log4j/2.x/log4j-slf4j-impl/ {quote} {{log4j-slf4j2-impl}} should be used with SLF4J 2.0.x releases or newer. {quote} To fix the issue, the 3 pom.xml referencing artifactId {{log4j-slf4j-impl}} should reference artifactId {{log4j-slf4j2-impl}} instead - {{log4j2.version}} is alread set to {{2.19.0}}: {noformat} $ grep -r --include="pom.xml" "log4j-slf4j-impl" * pom.xml:log4j-slf4j-impl server/apps/spring-app/pom.xml: log4j-slf4j-impl server/container/spring/pom.xml: log4j-slf4j-impl {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3853) Support IMAP XLIST
[ https://issues.apache.org/jira/browse/JAMES-3853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3853. - Resolution: Fixed > Support IMAP XLIST > -- > > Key: JAMES-3853 > URL: https://issues.apache.org/jira/browse/JAMES-3853 > Project: James Server > Issue Type: Improvement > Components: IMAPServer >Reporter: Benoit Tellier >Priority: Major > Fix For: 3.8.0 > > Time Spent: 10m > Remaining Estimate: 0h > > h3. Why? > My special case mailboxes do not get recognised by IMAP clients (they miss > the "role" information). > See https://github.com/linagora/james-project/issues/3960 > h3. How? > Provide a default typer for the already implemented XList extension, > Write a test, > And see if this works... > h3. Longer term options > https://www.rfc-editor.org/rfc/rfc6154 deprecated XList but is slightly > harder to implement... -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3854) Support RFC-8438 IMAP STATUS=SIZE
[ https://issues.apache.org/jira/browse/JAMES-3854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3854. - Resolution: Fixed > Support RFC-8438 IMAP STATUS=SIZE > - > > Key: JAMES-3854 > URL: https://issues.apache.org/jira/browse/JAMES-3854 > Project: James Server > Issue Type: Sub-task > Components: IMAPServer >Affects Versions: master >Reporter: Benoit Tellier >Priority: Major > Fix For: 3.8.0 > > Time Spent: 20m > Remaining Estimate: 0h > > https://datatracker.ietf.org/doc/html/rfc8438.html > Requirement to qualify as an IMAP REV 2 server... -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3855) Supports IMAP UNAUTHENTICATE (RFC-8437)
[ https://issues.apache.org/jira/browse/JAMES-3855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3855. - Resolution: Fixed > Supports IMAP UNAUTHENTICATE (RFC-8437) > --- > > Key: JAMES-3855 > URL: https://issues.apache.org/jira/browse/JAMES-3855 > Project: James Server > Issue Type: Improvement > Components: IMAPServer >Reporter: Benoit Tellier >Priority: Major > Fix For: 3.8.0 > > > https://www.rfc-editor.org/rfc/rfc8437.html > Usefull for administrative tasks. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3857) Implement RFC-7889 IMAP APPENDLIMIT
[ https://issues.apache.org/jira/browse/JAMES-3857?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3857. - Resolution: Fixed > Implement RFC-7889 IMAP APPENDLIMIT > --- > > Key: JAMES-3857 > URL: https://issues.apache.org/jira/browse/JAMES-3857 > Project: James Server > Issue Type: Improvement > Components: IMAPServer >Reporter: Benoit Tellier >Priority: Major > Fix For: 3.8.0 > > Time Spent: 20m > Remaining Estimate: 0h > > https://www.rfc-editor.org/rfc/rfc7889.html > Allows advertising the size limit for APPEND command. > -> Add the APPENDLIMIT capability > -> Add the APPENDLIMIT status item -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3852) Subscriptions for non personal mailboxes
[ https://issues.apache.org/jira/browse/JAMES-3852?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3852. - Resolution: Fixed > Subscriptions for non personal mailboxes > > > Key: JAMES-3852 > URL: https://issues.apache.org/jira/browse/JAMES-3852 > Project: James Server > Issue Type: Bug > Components: JMAP, mailbox >Reporter: Benoit Tellier >Assignee: Antoine Duprat >Priority: Major > Time Spent: 0.5h > Remaining Estimate: 0h > > h3. The problem > Subscriptions storage is based on the mailbox name thus do not allow to > distinguish two mailboxes with the same name belonging to other users, thus > leading to buggy behaviors in the face of delegation. > This behavior can be encoutered: > - In JMAP with James' mailbox sharing > - In JMAP we built an extension called team mailboxes (essentially > functional mailboxes) that runs in this pitfall. > h3. Solution > Rework subscription storage to rely on MailboxPath. > Data migration can be avoided by storing the mailbox path as a string, and > supporting fallbacks for non-mailbox path mailboxes. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3850) [JMAP] Configure `urn:ietf:params:jmap:mail` `maxSizeAttachmentsPerEmail` property
[ https://issues.apache.org/jira/browse/JAMES-3850?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3850. - Resolution: Fixed > [JMAP] Configure `urn:ietf:params:jmap:mail` `maxSizeAttachmentsPerEmail` > property > -- > > Key: JAMES-3850 > URL: https://issues.apache.org/jira/browse/JAMES-3850 > Project: James Server > Issue Type: New Feature > Components: JMAP >Affects Versions: master >Reporter: Benoit Tellier >Assignee: Antoine Duprat >Priority: Major > Fix For: 3.8.0 > > Time Spent: 20m > Remaining Estimate: 0h > > Today, this is hardcoded to 20MB > Needless to say, we should be flexible on this... -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3858) Implement RFC-8474 IMAP OBJECTID extension
[ https://issues.apache.org/jira/browse/JAMES-3858?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3858. - Resolution: Fixed > Implement RFC-8474 IMAP OBJECTID extension > -- > > Key: JAMES-3858 > URL: https://issues.apache.org/jira/browse/JAMES-3858 > Project: James Server > Issue Type: Improvement > Components: IMAPServer >Reporter: Benoit Tellier >Priority: Major > Fix For: 3.8.0 > > Time Spent: 10m > Remaining Estimate: 0h > > https://www.rfc-editor.org/rfc/rfc8474.html > Leverages JMAP style identifier to help prevent clients to needlessly > resynchronize (eg move from another client) -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3861) EmailDelivery push is used too much
Tran Hong Quan created JAMES-3861: - Summary: EmailDelivery push is used too much Key: JAMES-3861 URL: https://issues.apache.org/jira/browse/JAMES-3861 Project: James Server Issue Type: Improvement Components: JMAP Reporter: Tran Hong Quan Assignee: Antoine Duprat As of today, we push an EmailDelivery for each "added" event. Yet, added event is used for copies, move, saving draft, sending email... In addition to received new emails. We should revisit the APIs of `MessageManager::append` in order to allow passing a bit more context. This context would need to be carried other in the event system. # Definition of Done JMAP integration test showing that EmailDelivery` state change is reserved to receiving email... # API proposal Add a `isDelivery` field to the append command, defaulting to false. Add a isDelivery field to the `Added` event, defaulting to false. Ensure LocalDelivery sets the isDelivery to true. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3860) Rely on Files.createTempFile
Benoit Tellier created JAMES-3860: - Summary: Rely on Files.createTempFile Key: JAMES-3860 URL: https://issues.apache.org/jira/browse/JAMES-3860 Project: James Server Issue Type: Improvement Components: James Core Reporter: Benoit Tellier Fix For: 3.7.3, 3.8.0 This is the right way to do it in Java. Usage of File.createTempFile is not idiomatic. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3859) Wrong starting sequence
[ https://issues.apache.org/jira/browse/JAMES-3859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17635673#comment-17635673 ] Benoit Tellier commented on JAMES-3859: --- Found another solution: - We need to take into account `@Provides` into the ordering semantic - Provision listeners are annoying as they are called prior the provision, hence the order of startables is messed up. I attempted to re-sort them on the fly. I added some tests for injects ordering. > Wrong starting sequence > --- > > Key: JAMES-3859 > URL: https://issues.apache.org/jira/browse/JAMES-3859 > Project: James Server > Issue Type: Bug > Components: guice >Affects Versions: master >Reporter: Benoit Tellier >Priority: Major > Fix For: 3.8.0 > > > h3. What happened? > At a customer, processing emails via LMTP started while the user repository > was not (yet) configured. > As a result, the resulting processing was faulty (until the right > configuration was applied). > The starting sequence I observed: > {code:java} > 09:47:04.784 [INFO ] o.a.j.m.i.JamesMailSpooler - init... > 09:47:04.784 [INFO ] o.a.j.m.i.JamesMailSpooler - Concurrency level is 20 > 09:47:04.789 [INFO ] o.a.j.m.i.JamesMailSpooler - Spooler started > 09:47:04.796 [INFO ] o.a.j.m.m.MailboxListenersLoaderImpl - Loading user > registered mailbox listeners > 09:47:04.797 [INFO ] o.a.j.m.m.MailboxListenersLoaderImpl - Loading user > registered mailbox listener > ClassName{name=org.apache.james.mailbox.cassandra.MailboxOperationLoggingListener} > 09:47:04.835 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service bound to: 0.0.0.0:0 > 09:47:04.836 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service is running on: interview1-HP-ProBook-440-G6 > 09:47:04.836 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service handler hello name is: interview1-HP-ProBook-440-G6 > 09:47:04.836 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service handler connection timeout is: 300 > 09:47:04.836 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service connection backlog is: 200 > 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service bound to: 0.0.0.0:0 > 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service is running on: interview1-HP-ProBook-440-G6 > 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service handler hello name is: interview1-HP-ProBook-440-G6 > 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service handler connection timeout is: 300 > 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service connection backlog is: 200 > 09:47:04.846 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - TLS > enabled with auth NONE using truststore null > 09:47:04.932 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init IMAP > Service done > 09:47:05.019 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init IMAP > Service done > 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP > Service bound to: 0.0.0.0:0 > 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP > Service is running on: interview1-HP-ProBook-440-G6 > 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP > Service handler hello name is: interview1-HP-ProBook-440-G6 > 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP > Service handler connection timeout is: 1200 > 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP > Service connection backlog is: 200 > 09:47:05.031 [INFO ] o.a.j.l.n.LMTPServer - No maximum message size is > enforced for this server. > 09:47:05.196 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init LMTP > Service done > 09:47:05.209 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 > Service bound to: 0.0.0.0:0 > 09:47:05.209 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 > Service is running on: interview1-HP-ProBook-440-G6 > 09:47:05.209 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 > Service handler hello name is: interview1-HP-ProBook-440-G6 > 09:47:05.209 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 > Service handler connection timeout is: 1200 > 09:47:05.210 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 > Service connection backlog is: 200 > 09:47:05.293 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init POP3 > Service done > 09:47:
[jira] [Created] (JAMES-3859) Wrong starting sequence
Benoit Tellier created JAMES-3859: - Summary: Wrong starting sequence Key: JAMES-3859 URL: https://issues.apache.org/jira/browse/JAMES-3859 Project: James Server Issue Type: Bug Components: guice Affects Versions: master Reporter: Benoit Tellier Fix For: 3.8.0 h3. What happened? At a customer, processing emails via LMTP started while the user repository was not (yet) configured. As a result, the resulting processing was faulty (until the right configuration was applied). The starting sequence I observed: {code:java} 09:47:04.784 [INFO ] o.a.j.m.i.JamesMailSpooler - init... 09:47:04.784 [INFO ] o.a.j.m.i.JamesMailSpooler - Concurrency level is 20 09:47:04.789 [INFO ] o.a.j.m.i.JamesMailSpooler - Spooler started 09:47:04.796 [INFO ] o.a.j.m.m.MailboxListenersLoaderImpl - Loading user registered mailbox listeners 09:47:04.797 [INFO ] o.a.j.m.m.MailboxListenersLoaderImpl - Loading user registered mailbox listener ClassName{name=org.apache.james.mailbox.cassandra.MailboxOperationLoggingListener} 09:47:04.835 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP Service bound to: 0.0.0.0:0 09:47:04.836 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP Service is running on: interview1-HP-ProBook-440-G6 09:47:04.836 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP Service handler hello name is: interview1-HP-ProBook-440-G6 09:47:04.836 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP Service handler connection timeout is: 300 09:47:04.836 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP Service connection backlog is: 200 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP Service bound to: 0.0.0.0:0 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP Service is running on: interview1-HP-ProBook-440-G6 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP Service handler hello name is: interview1-HP-ProBook-440-G6 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP Service handler connection timeout is: 300 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP Service connection backlog is: 200 09:47:04.846 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - TLS enabled with auth NONE using truststore null 09:47:04.932 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init IMAP Service done 09:47:05.019 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init IMAP Service done 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP Service bound to: 0.0.0.0:0 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP Service is running on: interview1-HP-ProBook-440-G6 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP Service handler hello name is: interview1-HP-ProBook-440-G6 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP Service handler connection timeout is: 1200 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP Service connection backlog is: 200 09:47:05.031 [INFO ] o.a.j.l.n.LMTPServer - No maximum message size is enforced for this server. 09:47:05.196 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init LMTP Service done 09:47:05.209 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 Service bound to: 0.0.0.0:0 09:47:05.209 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 Service is running on: interview1-HP-ProBook-440-G6 09:47:05.209 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 Service handler hello name is: interview1-HP-ProBook-440-G6 09:47:05.209 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 Service handler connection timeout is: 1200 09:47:05.210 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 Service connection backlog is: 200 09:47:05.293 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init POP3 Service done 09:47:05.307 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP Service bound to: 0.0.0.0:0 09:47:05.307 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP Service is running on: interview1-HP-ProBook-440-G6 09:47:05.307 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP Service handler hello name is: interview1-HP-ProBook-440-G6 09:47:05.308 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP Service handler connection timeout is: 360 09:47:05.308 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP Service connection backlog is: 200 09:47:05.313 [INFO ] o.a.j.s.n.SMTPServer - No maximum message size is enforced for this server. 09:47:05.314 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP Service bound to: 0.0.0.0:0 09:47:05.314 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP Service is running on: interview1-HP-ProBook-440-G6 09:47:05.314
[jira] [Closed] (JAMES-3856) Implement RFC-9208 IMAP QUOTA Extension
[ https://issues.apache.org/jira/browse/JAMES-3856?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3856. - Resolution: Fixed > Implement RFC-9208 IMAP QUOTA Extension > --- > > Key: JAMES-3856 > URL: https://issues.apache.org/jira/browse/JAMES-3856 > Project: James Server > Issue Type: Improvement > Components: IMAPServer >Reporter: Benoit Tellier >Priority: Major > Fix For: 3.8.0 > > Time Spent: 50m > Remaining Estimate: 0h > > https://www.rfc-editor.org/rfc/rfc9208 > This updates the currently implemented quota extension (RFC-2087): > {code:java} > 10. Changes Since RFC 2087 > This document is a revision of [RFC2087], and it aims to clarify the meaning > of different terms that were used in that RFC. It also provides more > examples, gives guidance on allowed server behavior, defines an IANA registry > for quota resource types, and provides initial registrations for 4 of them. > When compared with [RFC2087], this document defines two more commonly used > resource types, adds an optional OVERQUOTA response code, and defines two > extra STATUS data items ("DELETED" and "DELETED-STORAGE"). The DELETED STATUS > data item must be implemented if the "QUOTA=RES-MESSAGE" capability is > advertised. The DELETED-STORAGE STATUS data item must be implemented if the > "QUOTA=RES-STORAGE" capability is advertised. For extensibility, quota usage > and quota limits are now 63-bit unsigned integers. > {code} > Please note that supporting IMAP STATUS DELETED is also a requirement for > IMAP4REV2 (RFC-9051). -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3858) Implement RFC-8474 IMAP OBJECTID extension
Benoit Tellier created JAMES-3858: - Summary: Implement RFC-8474 IMAP OBJECTID extension Key: JAMES-3858 URL: https://issues.apache.org/jira/browse/JAMES-3858 Project: James Server Issue Type: Improvement Components: IMAPServer Reporter: Benoit Tellier Fix For: 3.8.0 https://www.rfc-editor.org/rfc/rfc8474.html Leverages JMAP style identifier to help prevent clients to needlessly resynchronize (eg move from another client) -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3857) Implement RFC-7889 IMAP APPENDLIMIT
Benoit Tellier created JAMES-3857: - Summary: Implement RFC-7889 IMAP APPENDLIMIT Key: JAMES-3857 URL: https://issues.apache.org/jira/browse/JAMES-3857 Project: James Server Issue Type: Improvement Components: IMAPServer Reporter: Benoit Tellier Fix For: 3.8.0 https://www.rfc-editor.org/rfc/rfc7889.html Allows advertising the size limit for APPEND command. -> Add the APPENDLIMIT capability -> Add the APPENDLIMIT status item -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3856) Implement RFC-9208 IMAP QUOTA Extension
Benoit Tellier created JAMES-3856: - Summary: Implement RFC-9208 IMAP QUOTA Extension Key: JAMES-3856 URL: https://issues.apache.org/jira/browse/JAMES-3856 Project: James Server Issue Type: Improvement Components: IMAPServer Reporter: Benoit Tellier Fix For: 3.8.0 https://www.rfc-editor.org/rfc/rfc9208 This updates the currently implemented quota extension (RFC-2087): {code:java} 10. Changes Since RFC 2087 This document is a revision of [RFC2087], and it aims to clarify the meaning of different terms that were used in that RFC. It also provides more examples, gives guidance on allowed server behavior, defines an IANA registry for quota resource types, and provides initial registrations for 4 of them. When compared with [RFC2087], this document defines two more commonly used resource types, adds an optional OVERQUOTA response code, and defines two extra STATUS data items ("DELETED" and "DELETED-STORAGE"). The DELETED STATUS data item must be implemented if the "QUOTA=RES-MESSAGE" capability is advertised. The DELETED-STORAGE STATUS data item must be implemented if the "QUOTA=RES-STORAGE" capability is advertised. For extensibility, quota usage and quota limits are now 63-bit unsigned integers. {code} Please note that supporting IMAP STATUS DELETED is also a requirement for IMAP4REV2 (RFC-9051). -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3855) Supports IMAP UNAUTHENTICATE (RFC-8437)
Benoit Tellier created JAMES-3855: - Summary: Supports IMAP UNAUTHENTICATE (RFC-8437) Key: JAMES-3855 URL: https://issues.apache.org/jira/browse/JAMES-3855 Project: James Server Issue Type: Improvement Components: IMAPServer Reporter: Benoit Tellier Fix For: 3.8.0 https://www.rfc-editor.org/rfc/rfc8437.html Usefull for administrative tasks. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3851) TLS host name verification should handle trailing dot
[ https://issues.apache.org/jira/browse/JAMES-3851?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Karsten Otto closed JAMES-3851. --- Resolution: Fixed > TLS host name verification should handle trailing dot > - > > Key: JAMES-3851 > URL: https://issues.apache.org/jira/browse/JAMES-3851 > Project: James Server > Issue Type: Bug > Components: Remote Delivery >Affects Versions: master >Reporter: Karsten Otto >Priority: Major > Time Spent: 50m > Remaining Estimate: 0h > > I noticed that sometimes RemoteDelivery opens a connection using a fully > qualified hostname that ends with a trailing dot, like "mail.example.org." I > believe James may get that from MX resolving, since afaik DNS servers may do > this to indicate an absolute FQDN vs. a relative one. This is not an issue > when establishing a connection, but will break TLS hostname verification, > since the CN and SubjectAltNames in server certificates never use trailing > dots. > Consequently, RemoteDelivery should strip a trailing dot from the hostname > before connecting. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3854) Support RFC-8438IMAP STATUS=SIZE
[ https://issues.apache.org/jira/browse/JAMES-3854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier updated JAMES-3854: -- Parent: JAMES-3754 Issue Type: Sub-task (was: Improvement) > Support RFC-8438IMAP STATUS=SIZE > > > Key: JAMES-3854 > URL: https://issues.apache.org/jira/browse/JAMES-3854 > Project: James Server > Issue Type: Sub-task > Components: IMAPServer >Affects Versions: master >Reporter: Benoit Tellier >Priority: Major > Fix For: 3.8.0 > > > https://datatracker.ietf.org/doc/html/rfc8438.html > Requirement to qualify as an IMAP REV 2 server... -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3854) Support RFC-8438 IMAP STATUS=SIZE
[ https://issues.apache.org/jira/browse/JAMES-3854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier updated JAMES-3854: -- Summary: Support RFC-8438 IMAP STATUS=SIZE (was: Support RFC-8438IMAP STATUS=SIZE) > Support RFC-8438 IMAP STATUS=SIZE > - > > Key: JAMES-3854 > URL: https://issues.apache.org/jira/browse/JAMES-3854 > Project: James Server > Issue Type: Sub-task > Components: IMAPServer >Affects Versions: master >Reporter: Benoit Tellier >Priority: Major > Fix For: 3.8.0 > > > https://datatracker.ietf.org/doc/html/rfc8438.html > Requirement to qualify as an IMAP REV 2 server... -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3854) Support RFC-8438IMAP STATUS=SIZE
Benoit Tellier created JAMES-3854: - Summary: Support RFC-8438IMAP STATUS=SIZE Key: JAMES-3854 URL: https://issues.apache.org/jira/browse/JAMES-3854 Project: James Server Issue Type: Improvement Components: IMAPServer Affects Versions: master Reporter: Benoit Tellier Fix For: 3.8.0 https://datatracker.ietf.org/doc/html/rfc8438.html Requirement to qualify as an IMAP REV 2 server... -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3853) Support IMAP XLIST
Benoit Tellier created JAMES-3853: - Summary: Support IMAP XLIST Key: JAMES-3853 URL: https://issues.apache.org/jira/browse/JAMES-3853 Project: James Server Issue Type: Improvement Components: IMAPServer Reporter: Benoit Tellier Fix For: 3.8.0 h3. Why? My special case mailboxes do not get recognised by IMAP clients (they miss the "role" information). See https://github.com/linagora/james-project/issues/3960 h3. How? Provide a default typer for the already implemented XList extension, Write a test, And see if this works... h3. Longer term options https://www.rfc-editor.org/rfc/rfc6154 deprecated XList but is slightly harder to implement... -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3852) Subscriptions for non personal mailboxes
Benoit Tellier created JAMES-3852: - Summary: Subscriptions for non personal mailboxes Key: JAMES-3852 URL: https://issues.apache.org/jira/browse/JAMES-3852 Project: James Server Issue Type: Bug Components: JMAP, mailbox Reporter: Benoit Tellier Assignee: Antoine Duprat h3. The problem Subscriptions storage is based on the mailbox name thus do not allow to distinguish two mailboxes with the same name belonging to other users, thus leading to buggy behaviors in the face of delegation. This behavior can be encoutered: - In JMAP with James' mailbox sharing - In JMAP we built an extension called team mailboxes (essentially functional mailboxes) that runs in this pitfall. h3. Solution Rework subscription storage to rely on MailboxPath. Data migration can be avoided by storing the mailbox path as a string, and supporting fallbacks for non-mailbox path mailboxes. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3851) TLS host name verification should handle trailing dot
Karsten Otto created JAMES-3851: --- Summary: TLS host name verification should handle trailing dot Key: JAMES-3851 URL: https://issues.apache.org/jira/browse/JAMES-3851 Project: James Server Issue Type: Bug Components: Remote Delivery Affects Versions: master Reporter: Karsten Otto I noticed that sometimes RemoteDelivery opens a connection using a fully qualified hostname that ends with a trailing dot, like "mail.example.org." I believe James may get that from MX resolving, since afaik DNS servers may do this to indicate an absolute FQDN vs. a relative one. This is not an issue when establishing a connection, but will break TLS hostname verification, since the CN and SubjectAltNames in server certificates never use trailing dots. Consequently, RemoteDelivery should strip a trailing dot from the hostname before connecting. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3850) [JMAP] Configure `urn:ietf:params:jmap:mail` `maxSizeAttachmentsPerEmail` property
Benoit Tellier created JAMES-3850: - Summary: [JMAP] Configure `urn:ietf:params:jmap:mail` `maxSizeAttachmentsPerEmail` property Key: JAMES-3850 URL: https://issues.apache.org/jira/browse/JAMES-3850 Project: James Server Issue Type: New Feature Components: JMAP Affects Versions: master Reporter: Benoit Tellier Assignee: Antoine Duprat Fix For: 3.8.0 Today, this is hardcoded to 20MB Needless to say, we should be flexible on this... -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JSPF-109) Please create a new version
[ https://issues.apache.org/jira/browse/JSPF-109?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JSPF-109. --- Resolution: Fixed The release happened today. Wait the weekend for maven dependencies to propagate ;-) > Please create a new version > --- > > Key: JSPF-109 > URL: https://issues.apache.org/jira/browse/JSPF-109 > Project: James jSPF > Issue Type: Request >Reporter: Mark Wijnbergen >Priority: Major > > There are vulnerabilities in this project > ([https://javalibs.com/artifact/org.apache.james.jspf/apache-jspf-resolver),] > which are caused by Log4J, which is no longer maintained. > I would really appreciate if a new deployment could be made based on the > latest commit > [https://github.com/apache/james-jspf/commit/6b12046c67d1a3edea8c226a143e86ef76fc6922] > that drops Log4J, and thus should fix all vulnerabilities. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3841) ActiveMQ: Collect statistics and publish metrics
[ https://issues.apache.org/jira/browse/JAMES-3841?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] ouvtam updated JAMES-3841: -- Attachment: (was: image.gif) > ActiveMQ: Collect statistics and publish metrics > > > Key: JAMES-3841 > URL: https://issues.apache.org/jira/browse/JAMES-3841 > Project: James Server > Issue Type: Improvement > Components: Queue >Reporter: ouvtam >Priority: Minor > Time Spent: 1h > Remaining Estimate: 0h > > Currently, only some James metrics are available for ActiveMQ which are > exposed in WebAdmin. Namely, enqueuedMail and dequeuedMail for each > registered queue (i.e. spool and outgoing). Some ActiveMQ broker stats > (memoryUsage, memoryLimit, storeUsage, storeLimit, maxEnqueueTime, etc.) are > currently not available. > According to [https://activemq.apache.org/statisticsplugin.html] ActiveMQ > Metrics can be obtained through subscription or by polling regularly. At the > moment the statistics plugin is only used to get the size of a queue. > I propose to poll ActiveMQ statistics via ActiveMQHealthCheck and publish > those as metrics. Currently, the health check creates a session and checks if > no exception occurred. > What do you think? > -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3841) ActiveMQ: Collect statistics and publish metrics
[ https://issues.apache.org/jira/browse/JAMES-3841?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] ouvtam updated JAMES-3841: -- Attachment: image.gif > ActiveMQ: Collect statistics and publish metrics > > > Key: JAMES-3841 > URL: https://issues.apache.org/jira/browse/JAMES-3841 > Project: James Server > Issue Type: Improvement > Components: Queue >Reporter: ouvtam >Priority: Minor > Time Spent: 1h > Remaining Estimate: 0h > > Currently, only some James metrics are available for ActiveMQ which are > exposed in WebAdmin. Namely, enqueuedMail and dequeuedMail for each > registered queue (i.e. spool and outgoing). Some ActiveMQ broker stats > (memoryUsage, memoryLimit, storeUsage, storeLimit, maxEnqueueTime, etc.) are > currently not available. > According to [https://activemq.apache.org/statisticsplugin.html] ActiveMQ > Metrics can be obtained through subscription or by polling regularly. At the > moment the statistics plugin is only used to get the size of a queue. > I propose to poll ActiveMQ statistics via ActiveMQHealthCheck and publish > those as metrics. Currently, the health check creates a session and checks if > no exception occurred. > What do you think? > -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3842) Access SSLSession from Hooks and Handlers
[ https://issues.apache.org/jira/browse/JAMES-3842?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Karsten Otto closed JAMES-3842. --- Resolution: Fixed > Access SSLSession from Hooks and Handlers > - > > Key: JAMES-3842 > URL: https://issues.apache.org/jira/browse/JAMES-3842 > Project: James Server > Issue Type: Improvement > Components: protocols >Affects Versions: master >Reporter: Karsten Otto >Priority: Minor > Time Spent: 50m > Remaining Estimate: 0h > > James supports SMTPS and StartTLS, but currently has no way to > programmatically access the resulting SSLSession from SMTP Hooks, POP3 > Command Handlers etc. I propose to make the SSLSession accessible through the > ProtocolSession. > This way, hooks/handlers can examine the SSL/TLS parameters negotiated with > the currently connected client. They can check e.g. TLS version and selected > cipher suite to evaluate the security level of the connection. With > certificate based client authentication enabled, they can get the provided > client certificate, e.g. to check against a permission list. Or a > JamesMessageHook could attach it to the Mail object, so this information > becomes even available to Mailets after spooling. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3846) Improve vacation notice appearance
[ https://issues.apache.org/jira/browse/JAMES-3846?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Karsten Otto closed JAMES-3846. --- Resolution: Fixed > Improve vacation notice appearance > -- > > Key: JAMES-3846 > URL: https://issues.apache.org/jira/browse/JAMES-3846 > Project: James Server > Issue Type: Improvement > Components: Matchers/Mailets (bundled) >Affects Versions: master >Reporter: Karsten Otto >Priority: Minor > Attachments: Screenshot from 2022-11-02 12-36-54.png > > Time Spent: 20m > Remaining Estimate: 0h > > I noticed that vacation notices generated by James look somewhat strange in > Thunderbird, and probably other mail clients as well: It shows _both_ the > HTML and plain text variant of the message (see attached screenshot). This is > likely caused by the Content-Type of multipart/mixed. > I suggest we change this to multipart/alternative instead, so a HTML capable > client will only show the HTML part, while a text-only client will show the > text part instead. > I also noticed that, after setting an HTML message and an _empty_ text > message by accident, the generated text part is naturally empty. This is OK > for HTML-capable clients, but in the worst case a text-only client would show > just an empty mail, even though there is content in the HTML part. > I suggest we make the vacation notice generation more robust, and also > generate a text message from HTML in this case, which will be more useful to > the recipients. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3843) VacationMailet should use null sender
[ https://issues.apache.org/jira/browse/JAMES-3843?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benoit Tellier closed JAMES-3843. - Fix Version/s: 3.8.0 Resolution: Fixed Fixed > VacationMailet should use null sender > - > > Key: JAMES-3843 > URL: https://issues.apache.org/jira/browse/JAMES-3843 > Project: James Server > Issue Type: Improvement > Components: Matchers/Mailets (bundled) >Affects Versions: master >Reporter: Karsten Otto >Priority: Major > Fix For: 3.8.0 > > Time Spent: 2.5h > Remaining Estimate: 0h > > When the VacationMailet sends a vacation message, it uses the original > recipient as envelope sender. However, RFC 5230 states > "5.1. SMTP MAIL FROM Address > The SMTP MAIL FROM address of the message envelope SHOULD be set to <>." > While we are technically OK because of the SHOULD, I do not see any real > requirement to deviate from the recommendation. In fact, using the null > sender can help prevent mail loops. So I propose we change the VacationMailet > accordingly. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org