blob: 6a19dbe50d745eeeda7cb23ad4430bc3ad6ba819 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>James Website</title>
<description>Write an awesome description for your new site here. You can edit this line in _config.yml. It will appear in your document head meta (for Google search results) and in your feed.xml site description.
</description>
<link>http://james.apache.org/</link>
<atom:link href="http://james.apache.org/feed.xml" rel="self" type="application/rss+xml"/>
<pubDate>Sun, 26 Sep 2021 20:56:00 +0700</pubDate>
<lastBuildDate>Sun, 26 Sep 2021 20:56:00 +0700</lastBuildDate>
<generator>Jekyll v4.2.0</generator>
<item>
<title>Apache James Mime4J 0.8.6</title>
<description>&lt;p&gt;The Apache James developers are pleased to announce Apache James Mime4J 0.8.6&lt;/p&gt;
&lt;p&gt;This release mostly enhances performances:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MIME4J-306 MimeUtil::unfold should group char appends (#52)&lt;/li&gt;
&lt;li&gt;MIME4J-305 ContentUtil::decode can avoid using StringBuilder (#51)&lt;/li&gt;
&lt;li&gt;MIME4J-304 DecoderUtil::decodeEncodedWords without REGEXP (#50)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Early adopters can &lt;a href=&quot;http://james.apache.org/download.cgi#Apache_James_Server&quot;&gt;download it&lt;/a&gt;, any issue can be reported on our issue &lt;a href=&quot;https://issues.apache.org/jira/browse/MIME4J&quot;&gt;tracker&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The changelog for this release can be seen &lt;a href=&quot;https://github.com/apache/james-mime4j/blob/master/CHANGELOG.md&quot;&gt;here&lt;/a&gt;&lt;/p&gt;
</description>
<pubDate>Sun, 26 Sep 2021 18:16:30 +0700</pubDate>
<link>http://james.apache.org/james/update/2021/09/26/mime4j-0.8.6.html</link>
<guid isPermaLink="true">http://james.apache.org/james/update/2021/09/26/mime4j-0.8.6.html</guid>
<category>james</category>
<category>update</category>
</item>
<item>
<title>Getting Apache James to serve 1M+ digital mailboxes of all Estonian residents </title>
<description>&lt;p&gt;The Apache James team is proud to announce that one of our committers, Juhan Aasaru, presents a James
talk at &lt;a href=&quot;https://www.apachecon.com/acah2021/index.html&quot;&gt;ApacheCON @home 2021&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is the &lt;a href=&quot;https://www.apachecon.com/acah2021/tracks/highlight.html&quot;&gt;talk description&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;Every Estonian (e)resident has a digital mailbox that is a secure application for the state and local government bodies
to contact the resident and vice versa. A year ago our company won the tender to improve this service and to replace
the legacy systems with something scalable. This is the story of how we started to look out for best technical solutions
for the problem and found Apache James. How we made a proposition to the government agency responsible for providing this
mailing service to use Apache James (and Apache Cassandra that powers the system under the hood). How we jumped into the
Apache James community to understand the product and find a way to solve the requirements that were missing from the
feature set. How we get tremendous help from the community and how we managed to give something back as well.&lt;/p&gt;
&lt;p&gt;Eventually our story could be a lesson learned for someone who plans to undertake something similar together with tips
on how to correctly build a system on top of open source and what to avoid.&lt;/p&gt;
&lt;p&gt;Most of his working life Juhan has worked as a Java developer and Solutions Architect. He has also been CTO in two
startup companies. A few years ago he was working on a Fintech startup and contributed to Apache Fineract but recently
his attention has moved away from Fintech towards Apache James.&lt;/p&gt;
&lt;p&gt;Join him Tuesday, 21th of September in the &lt;em&gt;highligh&lt;/em&gt; track.&lt;/p&gt;
&lt;p&gt;The link to the video of the talk will be updated when available.&lt;/p&gt;
</description>
<pubDate>Tue, 21 Sep 2021 05:00:30 +0700</pubDate>
<link>http://james.apache.org/james/update/2021/09/21/james-joinsapachecon.html</link>
<guid isPermaLink="true">http://james.apache.org/james/update/2021/09/21/james-joinsapachecon.html</guid>
<category>james</category>
<category>update</category>
</item>
<item>
<title>Apache James Mime4J 0.8.5</title>
<description>&lt;p&gt;The Apache James developers are pleased to announce Apache James Mime4J 0.8.5.&lt;/p&gt;
&lt;p&gt;This release mostly enhances performances (dates, base64 encoding, case
sensitivity management, …)&lt;/p&gt;
&lt;p&gt;Early adopters can &lt;a href=&quot;http://james.apache.org/download.cgi#Apache_James_Server&quot;&gt;download it&lt;/a&gt;, any issue can be reported on our issue &lt;a href=&quot;https://issues.apache.org/jira/browse/MIME4J&quot;&gt;tracker&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The changelog for this release can be seen &lt;a href=&quot;https://github.com/apache/james-mime4j/blob/master/CHANGELOG.md&quot;&gt;here&lt;/a&gt;&lt;/p&gt;
</description>
<pubDate>Fri, 02 Jul 2021 18:16:30 +0700</pubDate>
<link>http://james.apache.org/james/update/2021/07/02/mime4j-0.8.5.html</link>
<guid isPermaLink="true">http://james.apache.org/james/update/2021/07/02/mime4j-0.8.5.html</guid>
<category>james</category>
<category>update</category>
</item>
<item>
<title>Apache James Mime4J 0.8.4</title>
<description>&lt;p&gt;The Apache James developers are pleased to announce Apache James Mime4J 0.8.4.&lt;/p&gt;
&lt;p&gt;Early adopters can &lt;a href=&quot;http://james.apache.org/download.cgi#Apache_James_Server&quot;&gt;download it&lt;/a&gt;, any issue can be reported on our issue &lt;a href=&quot;https://issues.apache.org/jira/browse/MIME4J&quot;&gt;tracker&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The changelog for this release can be seen &lt;a href=&quot;https://github.com/apache/james-mime4j/blob/master/CHANGELOG.md&quot;&gt;here&lt;/a&gt;&lt;/p&gt;
</description>
<pubDate>Wed, 21 Apr 2021 18:16:30 +0700</pubDate>
<link>http://james.apache.org/james/update/2021/04/21/mime4j-0.8.4.html</link>
<guid isPermaLink="true">http://james.apache.org/james/update/2021/04/21/mime4j-0.8.4.html</guid>
<category>james</category>
<category>update</category>
</item>
<item>
<title>Apache James Server 3.6.0</title>
<description>&lt;p&gt;The Apache James developers are pleased to announce James server 3.6.0 release.&lt;/p&gt;
&lt;p&gt;Early adopters can &lt;a href=&quot;http://james.apache.org/download.cgi#Apache_James_Server&quot;&gt;download it&lt;/a&gt;, any issue can be reported on our issue &lt;a href=&quot;https://issues.apache.org/jira/browse/JAMES&quot;&gt;tracker&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;announcements&quot;&gt;Announcements&lt;/h2&gt;
&lt;h3 id=&quot;experimental-support-for-jmap-rfc-8621-and-deprecation-of-jmap-draft&quot;&gt;Experimental support for JMAP RFC-8621 and deprecation of JMAP Draft&lt;/h3&gt;
&lt;p&gt;Since the last release we worked hard refreshing our JMAP implementation, implementing both &lt;a href=&quot;https://tools.ietf.org/html/rfc8620&quot;&gt;JMAP core&lt;/a&gt;,
&lt;a href=&quot;https://tools.ietf.org/html/rfc8621&quot;&gt;JMAP mail&lt;/a&gt; and the &lt;a href=&quot;https://tools.ietf.org/html/rfc8887&quot;&gt;JMAP over WebSocket&lt;/a&gt; specifications. Their support is considered experimental and
early adopters’ feedback is highly welcomed.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/apache/james-project/tree/master/server/protocols/jmap-draft/doc&quot;&gt;JMAP Draft&lt;/a&gt; should be considered legacy, and will be removed in upcoming 3.7.0 release.&lt;/p&gt;
&lt;h3 id=&quot;switch-to-java-11-for-build-and-run&quot;&gt;Switch to Java 11 for build and run&lt;/h3&gt;
&lt;p&gt;We adopted Java Runtime Environment 11 from James release 3.6.0. James 3.5.0 is the last version offering Java Runtime
Environment 8 support.&lt;/p&gt;
&lt;h2 id=&quot;release-changelog&quot;&gt;Release changelog&lt;/h2&gt;
&lt;p&gt;Here are some points we worked on:&lt;/p&gt;
&lt;h3 id=&quot;added&quot;&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;JAMES-2884 Partial Support for JMAP RFC-8621: The current implementation status allow reading mailboxes, emails, vacation responses.
&lt;ul&gt;
&lt;li&gt;JAMES-3457 Implement JMAP eventSource&lt;/li&gt;
&lt;li&gt;JAMES-3491 JMAP over websocket (RFC-8887)&lt;/li&gt;
&lt;li&gt;JAMES-3470 JMAP RFC-8621 Email/changes + Mailbox/changes support&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;JAMES-3117 Add PeriodicalHealthChecks for periodical calling all health checks&lt;/li&gt;
&lt;li&gt;JAMES-3143 WebAdmin endpoint to solve Cassandra message inconsistencies&lt;/li&gt;
&lt;li&gt;JAMES-3138 Webadmin endpoint to recompute users current quotas on top of Guice products&lt;/li&gt;
&lt;li&gt;JAMES-3296 Webadmin endpoint to rebuild RabbitMQMailQueue in the Distributed Server&lt;/li&gt;
&lt;li&gt;JAMES-3266 Offer an option to disable ElasticSearch in Distributed James product&lt;/li&gt;
&lt;li&gt;JAMES-3202 Reindex only outdated documents with the Mode option set to CORRECT in reindexing tasks&lt;/li&gt;
&lt;li&gt;JAMES-3405 Expose metrics of Guice servers over HTTP - enables easy Prometheus metrics collection&lt;/li&gt;
&lt;li&gt;JAMES-3407 Distributed server: Read-repairs for the mailbox entity&lt;/li&gt;
&lt;li&gt;JAMES-3428 Distributed server: Read-repairs for the mailbox counters entity&lt;/li&gt;
&lt;li&gt;JAMES-3139 Expose RabbitMQ channel &amp;amp; connection configuration&lt;/li&gt;
&lt;li&gt;JAMES-3441 Make possible and document Distributed Server setup with specialized instances&lt;/li&gt;
&lt;li&gt;JAMES-3337 Document the use of JWT&lt;/li&gt;
&lt;li&gt;JAMES-3399 Allow JSON logging with logback - enables structure logging with FluentBit&lt;/li&gt;
&lt;li&gt;JAMES-3396 WebAdmin should try to prevent RRT addresses redirection loops when possible&lt;/li&gt;
&lt;li&gt;JAMES-3402 JMAP MDN messages should have a Date header&lt;/li&gt;
&lt;li&gt;JAMES-3028 Distributed server: allow choosing whether blobs should be deduplicated&lt;/li&gt;
&lt;li&gt;JAMES-3196 CanSendFromImpl: enable to send email from aliases for SMTP and JMAP&lt;/li&gt;
&lt;li&gt;JAMES-3196 Add an IMAP SessionId to correlate logs&lt;/li&gt;
&lt;li&gt;JAMES-3502 DistributedServer: SSL and authentication support for RabbitMQ&lt;/li&gt;
&lt;li&gt;JAMES-3504 Metrics and log for POP3&lt;/li&gt;
&lt;li&gt;JAMES-3431 Optional DSN support&lt;/li&gt;
&lt;li&gt;JAMES-3202 Allow search index Reindexing without cleanup&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;changed&quot;&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Switch to Java 11 for build and run&lt;/li&gt;
&lt;li&gt;JAMES-2760 mailqueue.size.metricsEnabled should be false by default&lt;/li&gt;
&lt;li&gt;JAMES-3252 DomainList autoDetection should be turned off by default. Operators relying on implicit values for enabling DomainList autoDetection now needs to explicitly configure it.&lt;/li&gt;
&lt;li&gt;JAMES-3184 Throttling mechanism allow an admin to specify the throughput desired for a given WebAdmin task&lt;/li&gt;
&lt;li&gt;JAMES-3224 Configuration for Cassandra ConsistencyLevel.{QUORUM, SERIAL} (for multi-dc configuration)&lt;/li&gt;
&lt;li&gt;JAMES-3176 Rewritte MDN parsing with Parboiled scala (avoid asm library dependency clash within the Distributed Server)&lt;/li&gt;
&lt;li&gt;JAMES-3194 Rely on DTOConverter in TaskRoute&lt;/li&gt;
&lt;li&gt;JAMES-3430 Restructure message properties storage within Cassandra Mailbox. See upgrade instructions.&lt;/li&gt;
&lt;li&gt;JAMES-3435 Use EventSourcing to manage ACL - avoid SERIAL reads for ACL thus unlocking a performance enhancement for the Distributed James server. Read upgrade instructions.&lt;/li&gt;
&lt;li&gt;JAMES-2124 Sorts module declarations in reactors (thanks to Jean Helou)&lt;/li&gt;
&lt;li&gt;JAMES-3440 JMAP users can now avoid relying on ElasticSearch reads for basic listing operations thanks to the EmailQueryView&lt;/li&gt;
&lt;li&gt;JAMES-3252 DomainList autoDection should be turned off by&lt;/li&gt;
&lt;li&gt;JAMES-3192 Upgrade Apache configuration to 2.7&lt;/li&gt;
&lt;li&gt;JAMES-3492 Upgrade ElasticSearch dependency for DistributedServer to 7.10&lt;/li&gt;
&lt;li&gt;JAMES-2514 Upgrade Cassandra dependency for DistributedServer 3.11.3 -&amp;gt; 3.11.10&lt;/li&gt;
&lt;li&gt;JAMES-3497 Multiple dependencies upgrades&lt;/li&gt;
&lt;li&gt;JAMES-3499 Package LDAP in Distributed Server&lt;/li&gt;
&lt;li&gt;JAMES-3225 Set up of the Apache CI&lt;/li&gt;
&lt;li&gt;[REFACTORING] Switch most of the test suite to JUNIT 5&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;fixed&quot;&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;JAMES-3305 Avoid crashes upon deserialization issues when consuming RabbitMQ messages, leverage dead-letter feature&lt;/li&gt;
&lt;li&gt;JAMES-3212 JMAP Handle subcrible/unsubcrible child’s folder when update mailbox&lt;/li&gt;
&lt;li&gt;JAMES-3416 Fix ElasticSearch email address search&lt;/li&gt;
&lt;li&gt;JAMES-1677 Upgrade default hasing algorithm to SHA-512&lt;/li&gt;
&lt;li&gt;JAMES-3454 Use a callback mechanism to re-create RabbitMQ auto-delete queues upon reconnections&lt;/li&gt;
&lt;li&gt;JAMES-3296 Recover email sent during RabbitMQ outages&lt;/li&gt;
&lt;li&gt;JAMES-2046 SentDateComparator should fallback to Mimle4J parsers&lt;/li&gt;
&lt;li&gt;JAMES-3416 ElasticSearch address indexing fixes&lt;/li&gt;
&lt;li&gt;JAMES-3386 add test to ensure blank mailbox paths are not allowed in jmap draft&lt;/li&gt;
&lt;li&gt;MAILBOX-392 WebAdmin documentation: creation of mailboxes with ‘&amp;amp;’ is allowed&lt;/li&gt;
&lt;li&gt;JAMES-3380 use non am/pm dependent hour format&lt;/li&gt;
&lt;li&gt;JAMES-2220 JMAP Draft: Flags update should not fail when a user is missing its Outbox&lt;/li&gt;
&lt;li&gt;JAMES-3364 DeletedMessageVault: deleting many messages dead-locks&lt;/li&gt;
&lt;li&gt;JAMES-3361 JMAP Draft: sharee should not be able to modify mailbox rights&lt;/li&gt;
&lt;li&gt;JAMES-3308 RabbitMQTerminationSubscriberTest should be thread safe&lt;/li&gt;
&lt;li&gt;JAMES-3177 Applicable flags updates needs to be thread safe (IMAP SELECT)&lt;/li&gt;
&lt;li&gt;JAMES-3309 Avoid a NPE in FetchProcessor when SelectedMailbox is unselected&lt;/li&gt;
&lt;li&gt;JAMES-3300 Fix default Cassandra LDAP configuration&lt;/li&gt;
&lt;li&gt;JAMES-3267 Stop forcefully delete ImapRequestFrameDecoder.decode temporary file&lt;/li&gt;
&lt;li&gt;JAMES-3167 Reactify MailboxMapper - unlocks better concurrency management&lt;/li&gt;
&lt;li&gt;JAMES-3170 Fix metric measurement upon reactor publisher replay&lt;/li&gt;
&lt;li&gt;JAMES-3213 Source ReplyTo in ICALToJsonAttribute&lt;/li&gt;
&lt;li&gt;JAMES-3204 Push limit to Cassandra backend when reading messages - before that message listing queries where always reading at least 5000 rows, and triggering other reads for these rows.&lt;/li&gt;
&lt;li&gt;JAMES-3201 ReIndexing enhancements&lt;/li&gt;
&lt;li&gt;JAMES-3179 Fix UpdatableTickingClock thread safety issue&lt;/li&gt;
&lt;li&gt;MAILBOX-405 Renaming too much mailboxes at once was failing on top of the Cassandra mailbox&lt;/li&gt;
&lt;li&gt;JAMES-3513 Wrong UID dispatched on the EventBus for StoreMessageIdManager::setInMailboxes&lt;/li&gt;
&lt;li&gt;JAMES-3512 DigestUtil: close base64 encoding stream&lt;/li&gt;
&lt;li&gt;JAMES-3487 Allow setting on*Exception parameters for Bounce&lt;/li&gt;
&lt;li&gt;JAMES-3511 Solve java.util.NoSuchElementException: heartbeatHandler&lt;/li&gt;
&lt;li&gt;JAMES-3507 Fix broken IMAP APPEND literalSizeLimit option preventing from buffering large requests to files&lt;/li&gt;
&lt;li&gt;JAMES-3438 des-ambiguity error message for Email/set create Content-Transfer-Encoding rejection&lt;/li&gt;
&lt;li&gt;JAMES-3477 Fix NPE when concurrently updating MimeMessage&lt;/li&gt;
&lt;li&gt;JAMES-3444 Perform JMAP TransportChecks only when JMAP is enabled&lt;/li&gt;
&lt;li&gt;JAMES-3495 Cassandra mailbox: Reproduce and fix the null messageId bug&lt;/li&gt;
&lt;li&gt;JAMES-3490 maxUploadSize should come from configuration&lt;/li&gt;
&lt;li&gt;JAMES-1717 VacationMailet should not return answers when no or empty Reply-To header&lt;/li&gt;
&lt;li&gt;JAMES-1784 JMAP: Users with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_&lt;/code&gt; in their names cannot download attachments&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;removed&quot;&gt;Removed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;HybridBlobStore. Introduced to fasten small blob access, its usage could be
compared to a cache, but with a sub-optimal implementation (no eviction, default replication factor, no circuit breaking).
Use BlobStore cache instead.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;JAMES-3295 Multiple IMAP performance enhancements for the Distributed Server. Some enhancement might transfer to other servers as well.
&lt;ul&gt;
&lt;li&gt;JAMES-3295 Use MessageManager::listMessagesMetadata more widely (IMAP)&lt;/li&gt;
&lt;li&gt;JAMES-3265 IMAP FETCH reading lastUid and lastModseq should be optional&lt;/li&gt;
&lt;li&gt;JAMES-3265 CassandraMessageMapper should limit modseq allocation upon flags updates&lt;/li&gt;
&lt;li&gt;JAMES-3265 Impement a MessageMapper method to reset all recents&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;JAMES-3263 Optimize RecipientRewriteTable::getMappingsForType&lt;/li&gt;
&lt;li&gt;JAMES-3458 Limit Cassandra statements when retrieving all quota limits&lt;/li&gt;
&lt;li&gt;JAMES-2037 CassandraMessageMapper::listAllMessageUids should not rely on ComposedMessageIdWithMetaData&lt;/li&gt;
&lt;li&gt;JAMES-3453 Specify explicitly lower safer defaults for Reactor flatMaps, filterWhens&lt;/li&gt;
&lt;li&gt;JAMES-3444 Allow moving JMAP mailets in a local-delivery processor - this enables calling &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RecipientIsLocal&lt;/code&gt; only one time in the mailet processing pipeline.&lt;/li&gt;
&lt;li&gt;JAMES-2037 Use Flux for MessageManager::search&lt;/li&gt;
&lt;li&gt;JAMES-3409 Better denormalize mailboxes within the Distributed Server. This enables reading only one table of the projection instead of two. Read repairs are implemented for keeping eventual consistency checks. Read upgrade instructions.&lt;/li&gt;
&lt;li&gt;JAMES-3433 Distributed Server: use caching blobstore only for frequently accessed data (callers can specify the level of performance they expect). This ensures the cache is read when it is useful.&lt;/li&gt;
&lt;li&gt;JAMES-3408 Limit concurrency when retrieving mailbox counters&lt;/li&gt;
&lt;li&gt;JAMES-3430 Restructure message properties storage within Cassandra Mailbox. See upgrade instructions.&lt;/li&gt;
&lt;li&gt;JAMES-3277 SetMessagesUpdateProcessor should read less mailboxes - enhance performance for JMAP-draft and JMAP RFC-8621.&lt;/li&gt;
&lt;li&gt;JAMES-3408 Enforce IMAP List not reading counters for Distributed James&lt;/li&gt;
&lt;li&gt;JAMES-3377 Remove unused text criterion - newly indexed mails indexed in ElasticSearch will take less space&lt;/li&gt;
&lt;li&gt;JAMES-3095 Avoid listing all subscriptions for each mailbox (IMAP)&lt;/li&gt;
&lt;li&gt;JAMES-2629 Use a future supplier in CassandraAsyncExecutor&lt;/li&gt;
&lt;li&gt;JAMES-2904 Avoid loading attachment when not needed (IMAP &amp;amp; JMAP) + attachment content streaming (JMAP)&lt;/li&gt;
&lt;li&gt;JAMES-3155 Limit the number of flags updated at the same time&lt;/li&gt;
&lt;li&gt;JAMES-3264 MAILBOX details are read 3 times upon indexing&lt;/li&gt;
&lt;li&gt;JAMES-3506 Avoid a full body read within VacationMailet&lt;/li&gt;
&lt;li&gt;JAMES-3508 Improved performance for IMAP APPEND&lt;/li&gt;
&lt;li&gt;JAMES-3506 SMTP performance enhancement&lt;/li&gt;
&lt;li&gt;JAMES-3505 Make mail remote delivery multi-threaded&lt;/li&gt;
&lt;li&gt;JAMES-3488 Support TLS 1.3&lt;/li&gt;
&lt;li&gt;JAMES-3484 Cassandra mailbox should group copies/moves&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;third-party-softwares&quot;&gt;Third party softwares&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;James is no longer tested against Cassandra 3.11.3 but instead against Cassandra 3.11.10. Users are recommended to upgrade to this
version as well. See related upgrade instructions.&lt;/li&gt;
&lt;/ul&gt;
</description>
<pubDate>Tue, 16 Mar 2021 20:16:30 +0700</pubDate>
<link>http://james.apache.org/james/update/2021/03/16/james-3.6.0.html</link>
<guid isPermaLink="true">http://james.apache.org/james/update/2021/03/16/james-3.6.0.html</guid>
<category>james</category>
<category>update</category>
</item>
<item>
<title>Performance testing for James with JMeter</title>
<description>&lt;p&gt;Ever wanted to figure out what Apache James gets in its guts?&lt;/p&gt;
&lt;p&gt;Xian Long detailed in this &lt;a href=&quot;https://www.cnblogs.com/hanxianlong/p/13894595.html&quot;&gt;blog post&lt;/a&gt; how to be using JMeter in order to run some
IMAP performance tests on top of the distributed server, using &lt;a href=&quot;https://jmeter.apache.org/&quot;&gt;JMeter&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/linagora/james-gatling&quot;&gt;Other tools&lt;/a&gt;, based on &lt;a href=&quot;https://gatling.io/&quot;&gt;Gatling&lt;/a&gt; had been developed within the community, addressing SMTP,
IMAP and &lt;a href=&quot;https://jmap.io/&quot;&gt;JMAP&lt;/a&gt; protocols.&lt;/p&gt;
</description>
<pubDate>Thu, 29 Oct 2020 20:16:30 +0700</pubDate>
<link>http://james.apache.org/community/2020/10/29/testing-james-with-jmeter.html</link>
<guid isPermaLink="true">http://james.apache.org/community/2020/10/29/testing-james-with-jmeter.html</guid>
<category>community</category>
</item>
<item>
<title>Apache James Server 3.5.0</title>
<description>&lt;p&gt;The Apache James developers are pleased to announce James server 3.5.0 release.&lt;/p&gt;
&lt;p&gt;Early adopters can &lt;a href=&quot;http://james.apache.org/download.cgi#Apache_James_Server&quot;&gt;download it&lt;/a&gt;, any issue can be reported on our issue &lt;a href=&quot;https://issues.apache.org/jira/browse/JAMES&quot;&gt;tracker&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;announcements&quot;&gt;Announcements&lt;/h2&gt;
&lt;h3 id=&quot;distributed-james-guice-product-beta&quot;&gt;Distributed James guice product beta&lt;/h3&gt;
&lt;p&gt;Furthermore, recent work of the Apache James project did lead to a James product that leverages a distributed mail server,
using storage technologies like &lt;a href=&quot;https://cassandra.apache.org/&quot;&gt;Cassandra&lt;/a&gt;, &lt;a href=&quot;https://www.elastic.co/elasticsearch/&quot;&gt;ElasticSearch&lt;/a&gt;, &lt;a href=&quot;https://www.rabbitmq.com/&quot;&gt;RabbitMQ&lt;/a&gt;, and &lt;a href=&quot;https://wiki.openstack.org/wiki/Swift&quot;&gt;objectStorage (S3/Swift)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Feedback on this product, announced as a beta since 3.5.0 is welcome.&lt;/p&gt;
&lt;p&gt;This product can be executed via &lt;a href=&quot;https://github.com/apache/james-project/blob/master/dockerfiles/run/docker-compose.yml&quot;&gt;docker-compose&lt;/a&gt; or you can follow its &lt;a href=&quot;/server/install/guice-cassandra-rabbitmq-swift.html&quot;&gt;standard installation guide&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;end-of-support-for-java-8&quot;&gt;End of support for Java 8&lt;/h3&gt;
&lt;p&gt;James 3.5.x is the last release line to support Java 8. From 3.6.0 James will run on a Java Runtime Environment 11.&lt;/p&gt;
&lt;h2 id=&quot;release-changelog&quot;&gt;Release changelog&lt;/h2&gt;
&lt;p&gt;Here are some points we worked on:&lt;/p&gt;
&lt;h3 id=&quot;added&quot;&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Distributed task management for Distributed James product. This enables several James servers to share a consistent view
of tasks being currently executed.&lt;/li&gt;
&lt;li&gt;JAMES-2563 Health check for ElasticSearch&lt;/li&gt;
&lt;li&gt;JAMES-2904 Authentication and SSL support for Cassandra backend&lt;/li&gt;
&lt;li&gt;JAMES-2904 Authentication and SSL support for ElasticSearch backend&lt;/li&gt;
&lt;li&gt;JAMES-3066 Add support alias when sending emails, with a &lt;a href=&quot;https://github.com/apache/james-project/blob/master/src/site/markdown/server/manage-webadmin.md#retrieving-the-list-of-allowed-from-headers-for-a-given-user&quot;&gt;“allowed From headers” webadmin endpoint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;JAMES-3062 HealthCheck for EventDeadLetters&lt;/li&gt;
&lt;li&gt;JAMES-3058 WebAdmin offline task to correct mailbox inconsistencies on top of Cassandra products&lt;/li&gt;
&lt;li&gt;JAMES-3105 WebAdmin offline task to recompute mailbox counters on top of Cassandra products&lt;/li&gt;
&lt;li&gt;JAMES-3072 Webadmin endpoint to export mailbox backup&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;changed&quot;&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Multiple changes have been made to enhance Distributed James indexing performance:
&lt;ul&gt;
&lt;li&gt;Use of routing keys to collocate documents per mailbox&lt;/li&gt;
&lt;li&gt;Under some configuration, html was not extracted before document indexing&lt;/li&gt;
&lt;li&gt;Removed unnecessary fields from mailbox mapping&lt;/li&gt;
&lt;li&gt;Disable dynamic mapping thanks to a change of the header structure&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;JAMES-2855 Multiple library/plugin/docker images/build tool upgrades&lt;/li&gt;
&lt;li&gt;By default the cassandra keyspace creation by James is now disabled by default. This allow to have credentials limited to a keyspace. It can be enabled by setting cassandra.keyspace.create=true in the cassandra.properties file.&lt;/li&gt;
&lt;li&gt;Usernames are assumed to be always lower cased. Many users recently complained about mails non received when sending to upper cased local recipients. We decided to simplify the handling of case for local recipients and users by always storing them lower cased.&lt;/li&gt;
&lt;li&gt;Unhealthy health checks now return HTTP 503 instead of 500, degraded now returns 200 instead of 500. See JAMES-2576.&lt;/li&gt;
&lt;li&gt;In order to fasten JMAP-draft message retrieval upon calls on properties expected to be fast to fetch, we now compute the preview and hasAttachment properties asynchronously and persist them in Cassandra to improve performance. See JAMES-2919.&lt;/li&gt;
&lt;li&gt;It is now forbidden to create new Usernames with the following set of characters in its local part : &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&quot;(),:; &amp;lt;&amp;gt;@\[]&lt;/code&gt;, as we prefer it to stay simple to handle. However, the read of Usernames already existing with some of those characters is still allowed, to not introduce any breaking change. See JAMES-2950.&lt;/li&gt;
&lt;li&gt;Linshare blob export configuration and mechanism change. See JAMES-3040.&lt;/li&gt;
&lt;li&gt;Differentiation between domain alias and domain mapping.&lt;/li&gt;
&lt;li&gt;JAMES-3122 Log4J2 adoption for Spring product. Log file configuration needs to be updated.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Read related &lt;a href=&quot;https://github.com/apache/james-project/blob/master/upgrade-instructions.md#3.5.0-version&quot;&gt;upgrade instructions&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;fixed&quot;&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;JAMES-2828 &amp;amp; JAMES-2929 bugs affecting JDBCMailRepository usage with PostgresSQL thanks to Jörg Thomas &amp;amp; Sergey B&lt;/li&gt;
&lt;li&gt;JAMES-2936 Creating a mailbox using consecutive delimiter character leads to creation of list of unnamed mailbox&lt;/li&gt;
&lt;li&gt;JAMES-2911 Unable to send mail from James using an SMTP gateway&lt;/li&gt;
&lt;li&gt;JAMES-2944 Inlined attachments should be wrapped in multipart/related by JMAP draft&lt;/li&gt;
&lt;li&gt;JAMES-2941 Return NO when an IMAP command unexpectedly fails&lt;/li&gt;
&lt;li&gt;JAMES-2943 Deleting auto detected domain should fail&lt;/li&gt;
&lt;li&gt;JAMES-2957 dlp.Dlp matcher should parse emails containing attachments&lt;/li&gt;
&lt;li&gt;JAMES-2958 Limit domain name size to not longer than 255 characters&lt;/li&gt;
&lt;li&gt;JAMES-2939 Prevent mixed case INBOX creation&lt;/li&gt;
&lt;li&gt;JAMES-2903 Rework default LOG4J log file for Spring&lt;/li&gt;
&lt;li&gt;JAMES-2739 fixed browse mails from queue over JMX&lt;/li&gt;
&lt;li&gt;JAMES-2375 DSNBounce mailet should provide a subject&lt;/li&gt;
&lt;li&gt;JAMES-2097 RemoteDelivery: Avoid retrying already succeeded recipients when sendPartial&lt;/li&gt;
&lt;li&gt;MAILBOX-392 Mailbox name validation upon mailbox creation is stricter: forbid &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;#&amp;amp;*%&lt;/code&gt; and empty sub-mailboxes names.&lt;/li&gt;
&lt;li&gt;JAMES-2972 Incorrect attribute name in the mailet configuration thanks to jtconsol&lt;/li&gt;
&lt;li&gt;JAMES-2632 JMAP Draft GetMailboxes performance enhancements when retrieving all mailboxes of a user&lt;/li&gt;
&lt;li&gt;JAMES-2964 Forbid to create User quota/ Domain quota/ Global quota using negative number&lt;/li&gt;
&lt;li&gt;JAMES-3074 Fixing UidValidity generation, sanitizing of invalid values upon reads.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;removed&quot;&gt;Removed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Classes marked as deprecated whose removal was planned after 3.4.0 release (See JAMES-2703). This includes:
&lt;ul&gt;
&lt;li&gt;SieveDefaultRepository. Please use SieveFileRepository instead.&lt;/li&gt;
&lt;li&gt;JDBCRecipientRewriteTable, XMLRecipientRewriteTable, UsersRepositoryAliasingForwarding, JDBCAlias mailets. Please use RecipientRewriteTable mailet instead.&lt;/li&gt;
&lt;li&gt;JDBCRecipientRewriteTable implementation. Please use JPARecipientRewriteTable instead.&lt;/li&gt;
&lt;li&gt;JamesUsersJdbcRepository, DefaultUsersJdbcRepository. Please use JpaUsersRepository instead.&lt;/li&gt;
&lt;li&gt;MailboxQuotaFixed matcher. Please use IsOverQuota instead.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;UsersFileRepository, which was marked as deprecated for years
&lt;ul&gt;
&lt;li&gt;We accordingly removed deprecated methods within UsersRepositoryManagementMBean exposed over JMX (unsetAlias, getAlias, unsetForwardAddress, getForwardAddress). RecipientRewriteTables should be used instead.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;JAMES-3016 RemoteDelivery now doesn’t enable &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;allow8bitmime&lt;/code&gt; property by default.
This parameter could cause body content alteration leading to invalid DKIM signatures to be positioned.
Thanks to Sergey B. for the report.
More details about the property is at &lt;a href=&quot;https://javaee.github.io/javamail/docs/api/com/sun/mail/smtp/package-summary.html&quot;&gt;java mail doc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;JAMES-3122 LogEnabled API in Spring product had been removed for Log4J2 adoption for Java 9+ runtime compatibility.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;third-party-softwares&quot;&gt;Third party softwares&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The distributed James server product (relying on Guice, Cassandra, ElasticSearch, RabbitMQ and optionally Swift) now needs at least RabbitMQ 3.8.&lt;/li&gt;
&lt;li&gt;Tika prior 1.24 is subject to multiple CVEs. We recommend the upgrade.&lt;/li&gt;
&lt;/ul&gt;
</description>
<pubDate>Thu, 16 Jul 2020 20:16:30 +0700</pubDate>
<link>http://james.apache.org/james/update/2020/07/16/james-3.5.0.html</link>
<guid isPermaLink="true">http://james.apache.org/james/update/2020/07/16/james-3.5.0.html</guid>
<category>james</category>
<category>update</category>
</item>
<item>
<title>Benoit Tellier presents James at ApacheCon Europe</title>
<description>&lt;p&gt;Benoit had the pleasure to present James at the ApacheCon at Berlin: “Gaining control over emails with Apache James”.&lt;/p&gt;
&lt;p&gt;If you missed him you can see his conference on &lt;a href=&quot;https://www.youtube.com/watch?v=zr8qpNkL6U4&quot;&gt;youtube&lt;/a&gt;, or read his &lt;a href=&quot;https://medium.com/linagora-engineering/linagora-representing-james-at-the-apachecon-europe-2019-c6e28b31242a&quot;&gt;article&lt;/a&gt;.&lt;/p&gt;
</description>
<pubDate>Tue, 19 Nov 2019 21:16:30 +0700</pubDate>
<link>http://james.apache.org/james/apachecon/2019/11/19/apache-con-eu.html</link>
<guid isPermaLink="true">http://james.apache.org/james/apachecon/2019/11/19/apache-con-eu.html</guid>
<category>james</category>
<category>apachecon</category>
</item>
<item>
<title>Apache James Server 3.4.0</title>
<description>&lt;p&gt;The Apache James developers are pleased to announce James server 3.4.0 release.&lt;/p&gt;
&lt;p&gt;Here are some points we worked on:&lt;/p&gt;
&lt;h3 id=&quot;added&quot;&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add in-memory docker image&lt;/li&gt;
&lt;li&gt;Support of AWS S3 as blobstore&lt;/li&gt;
&lt;li&gt;WebAdmin routes for mapping management (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AddAddressMapping&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AddRegexMapping&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ListMappings&lt;/code&gt;), previously only manageable by CLI&lt;/li&gt;
&lt;li&gt;Metrics for Deleted Message Vault&lt;/li&gt;
&lt;li&gt;More metrics for BlobStore (new delete &amp;amp; deleteBucket configuration)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;changed&quot;&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;(experimental) New implementation of the deleted message vault on top of an object store, not relying anymore on a
repository. This avoids exposing messages via webAdmin. Messages previously stored in the vault will be lost.&lt;/li&gt;
&lt;li&gt;Migration to ElasticSearch 6.3&lt;/li&gt;
&lt;li&gt;Blob export to LinShare&lt;/li&gt;
&lt;li&gt;Native DKIM support for outgoing mails. The mailets from james-jdkim have been included in main James project.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;deprecated&quot;&gt;Deprecated&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Zookeeper component. This will be removed after 3.4 release. If you have development skills, and are willing to maintain this component, please reach us.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;removed&quot;&gt;Removed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Karaf OSGi implementation. It was not compiled nor tested for a year. We didn’t get any feedback about that and we don’t have the resources nor the skills to maintain it any more.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Early adopters can &lt;a href=&quot;http://james.apache.org/download.cgi#Apache_James_Server&quot;&gt;download it&lt;/a&gt;, any issue can be reported on our issue &lt;a href=&quot;https://issues.apache.org/jira/browse/JAMES&quot;&gt;tracker&lt;/a&gt;.&lt;/p&gt;
</description>
<pubDate>Thu, 05 Sep 2019 20:16:30 +0700</pubDate>
<link>http://james.apache.org/james/update/2019/09/05/james-3.4.0.html</link>
<guid isPermaLink="true">http://james.apache.org/james/update/2019/09/05/james-3.4.0.html</guid>
<category>james</category>
<category>update</category>
</item>
<item>
<title>Apache James `latest` Docker images changes</title>
<description>&lt;p&gt;We have decided to change the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;latest&lt;/code&gt; Docker images behaviour.&lt;/p&gt;
&lt;p&gt;Until nowadays, such images were built on the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;master&lt;/code&gt; branch for each products (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;linagora/james-memory&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;linagora/james-cassandra-rabbitmq-ldap-project&lt;/code&gt;, …).&lt;br /&gt;
This is not the way &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;latest&lt;/code&gt; docker image should be, this &lt;a href=&quot;https://blog.container-solutions.com/docker-latest-confusion&quot;&gt;blog post&lt;/a&gt; is explaining this kind of misunderstood.&lt;/p&gt;
&lt;p&gt;So we decided to follow the global Docker users behaviour which is to clone the &lt;em&gt;latest stable release&lt;/em&gt; as the Docker &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;latest&lt;/code&gt; images.&lt;/p&gt;
&lt;p&gt;For those of you who are willing to use a Docker image on top of the master branch, you can use the newly created &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;branch-master&lt;/code&gt; tag,&lt;br /&gt;
which is published on each merge on the master branch.&lt;/p&gt;
&lt;p&gt;NB: you should not use the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;latest&lt;/code&gt; image in a production deployment, otherwise you are at risk of jumping from one major release to another unexpectedly.&lt;/p&gt;
&lt;p&gt;Thanks for reading,
Antoine&lt;/p&gt;
</description>
<pubDate>Fri, 30 Aug 2019 15:09:47 +0700</pubDate>
<link>http://james.apache.org/james/update/2019/08/30/latest-image-changes.html</link>
<guid isPermaLink="true">http://james.apache.org/james/update/2019/08/30/latest-image-changes.html</guid>
<category>james</category>
<category>update</category>
</item>
</channel>
</rss>