This document records what was done between releases. As always, thank you to everyone who contributed code, documentation, bug reports, and feedback!

Version 3.0.1

Released October 2017

The Apache James PMCs are glad to announce you the release version 3.0.1 of Apache James server.

It fixes vulnerability described in CVE-2017-12628. The JMX server, also used by the command line client is exposed to a java de-serialization issue, and thus can be used to execute arbitrary commands. As James exposes JMX socket by default only on local-host, this vulnerability can only be used for privilege escalation.

If you're interested in contributing to the James project, please subscribe to the James mailing lists.

Version 3.0.0

Released July 2017

The Apache James project is happy to announce the release of version 3.0.0 of its modular mail server.

After a long work, the team is really proud to announce the new release, James 3.0. This new version of the Apache James Server introduces many new features, like the IMAP protocol, experimental Sieve support, experimental JMAP support, and new email storage back-ends.

For the James 3.0 release, the team have been specifically committed to testing. We care about unit testing in a Test Driven Development way. We added many integration tests, using the Mail Protocol Tester suite, but also using various IMAP, SMTP and HTTP clients. We conducted load testing campaigns, and developed tools based on Gatling, a load testing framework, for the JMAP, IMAP and SMTP protocols. We introduced live metric collection and display in Grafana, as well as log collection in Kibana.

If you're interested in contributing to the James project, please subscribe to the James mailing lists.

Version 3.0-RC1

Released May 2017

The Apache James project is happy to announce the release of version 3.0.0-RC1 of its modular mail server.

We thank all Users for their feedback and tests and we encourage anyone to download and discover our RC1 release.

    What have been done in James 3.0.0-RC1 :
  • Add metrics in multiple components
  • Improve the Cassandra backend (still experimental)
  • Improve the ElasticSearch search index
  • Add more support of the JMAP protocol
  • Refactor some old mailets
  • Enhance Mailbox and Message API

If you're interested in contributing to the James project, please subscribe to the James mailing lists.

Version 3.0-beta5

Released October 2016

The Apache James project is happy to announce the release of version 3.0-beta5 of its modular mail server.

We thank all Users for their feedback and tests and we encourage anyone to download and discover our Beta 5 release.

    What have been done in James 3.0-beta5 :
  • Introduce Guice as an alternative to Spring
  • Create a search index based on ElasticSearch
  • New IMAP extensions including Metadata, Quotas, optional command MOVE
  • New Cassandra backend (still experimental)
  • Introduction of JMAP protocol (experimental)
  • Introduction of ManageSIEVE
  • Correction on SIEVE Body extension, addition of Vacation extension

If you're interested in contributing to the James project, please subscribe to the James mailing lists.

Version 3.0-beta4

Released April 2012

The Apache James project is happy to announce the release of version 3.0-beta4 of its modular mail server.

We thank all Users for their feedback and tests and we encourage anyone to download and discover our Beta 4 release.

You can read the detailed release notes.

If you're interested in contributing to the James project, please subscribe to the James mailing lists.

Version 3.0-beta3 (Milestone 3)

Released 2011

The Apache James project is happy to announce the release of version 3.0-beta3 (Milestone 3) of its modular mail server.

We thank all Users for their feedback and tests and we encourage anyone to download and discover this Milestone 3 release.

If you're interested in contributing to the James project, please subscribe to the James mailing lists.

                * What's new in 3.0-beta3 for end users
                - Numerous IMAP bug fixes (better client support, memory improvement, NIO and IO support...)
                - Support for IMAP IDLE (RFC 2177, server transmit updates to the client in real time)
                - Telnet Management has been removed in favor of JMX with client shell
                - More metrics counters available via JMX
                - Better debug logging on protocols
                - JPA validated against more databases (among others Oracle)
                - Multiple address and port configurations per protocol
                - POP3 is now operational (was buggy in 3.0-M2)
                - Mailbox Tooling to copy from a persistence to another persistence
                - Upgrade tool from James 2.3 is available
                - Better logging on protocols with adjustable level
                - Full mailet package must be specified
                - Composite Matchers
                - Better debug logging on protocols
                - Mailing list functionality has been removed
                - More documentation on web site for configuration,...
                - ... and much more, see details on https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10411&version=12315512
                * What's new in 3.0-beta3 for developers
                - Less maven modules
                - Maven 3.0.2 required to build
                - Upgrade to latest frameworks versions (netty, activemq, jackrabbit...)
                - Code reports generation via 'mvn site -P site-reports' maven profile
                - Corrections further to findbugs,... reports
                - Code formatting
                - ... and much more, see details on https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10411&version=12315512

                * Quick Start  http://james.apache.org/server/3/quick-start.html
            

Version 3.0-M2 (Milestone 2)

Released 09 November 2010

The Java Apache Mail Enterprise Server (a.k.a. Apache James) Project is happy to announce the release of version 3.0-M2 (Milestone 2) of the Apache James server.

M2 is not only a fast corrective release on M1 (issues related to JMX security configuration on Windows platforms,...), but also contains an important number of enhancement and JIRA fixes.

For example, memory usage has been reduced thanks to optimizations on the ActiveMQ component usage (responsible for the mail spooling).

We thank all Users for their feedback and tests and we encourage anyone to discover this Milestone 2 release.

If you're interested in contributing to the James project, please subscribe to the James mailing lists.

Bug

  • [JAMES-241] - fail gracefully upon large messages/attachments
  • [JAMES-302] - Functionality of org.apache.james.dnsserver.DNSServer.getByName(String) is not symetric to java.net.InetAddress.getByName(String)
  • [JAMES-344] - FetchMail cannot parse particular format of "Received" header
  • [JAMES-457] - POP3 server doesn't perform an exlusive-access locks in a transaction required by rcf1939.
  • [JAMES-717] - AbstractStorageQuota use one queriesper mail to calculate the mailbox size . This is very ineffective and can cause problems with sql
  • [JAMES-795] - CLONE -If FetchMail cannot parse Received header, it cannot process the message even with <remotereceivedheader reject="false"...>
  • [JAMES-900] - Possible race-condition in MimeMessageCopyOnWriteProxy
  • [JAMES-1009] - Cleaning up DB enteries upon user account deletion
  • [JAMES-1102] - james-listmanager.xml file: invalid XML file format
  • [JAMES-1103] - spring-beans.xml schema reference is invalid
  • [JAMES-1106] - MimeMessageInputStream may throw a "no Content" MessagingException
  • [JAMES-1111] - JamesMailserver throws Exception if defaultDomain does not exist
  • [JAMES-1112] - ActiveMQ JMX try to bind to wrong JMX url
  • [JAMES-1113] - James fails to start if no domain is configured
  • [JAMES-1115] - James fails to start when Maildir is used because of an incorrect bean-name in spring-beans.xml
  • [JAMES-1116] - James fails to start when JCR Mailbox is used because of incorrect spring-beans.xml entries

Improvement

  • [JAMES-348] - make JDK independent (e.g. also IBM JVM should work)
  • [JAMES-640] - large attachment (3 or more Mbyte) will make mbox repository very slow
  • [JAMES-1093] - Add POP3Session.getOutputStream() to allow to write message content efficient
  • [JAMES-1095] - Renable efficient handling of MimeMessageWrapper wrapping / cloning
  • [JAMES-1096] - MimeMessageWrapper should try to prevent copy of headers into memory when wrapping a MimeMessageWrapper instance
  • [JAMES-1097] - MimeMessageInputStream should optimize handling of MimeMessageWrapper and MimeMessageCopyOnWriteProxy
  • [JAMES-1100] - Make MimeMessageWrapper copy of Message configurable
  • [JAMES-1108] - Rewrite ActiveMQQueue to use BlobMessages and a custom BlobTransferPolicy

New Feature

  • [JAMES-948] - Composite pattern employed to implement And, Or, Xor and Not matcher.
  • [JAMES-1114] - Add Handler for the SMTPHandlerChain which set mail priority

Task

Version 3.0-M1 (Milestone 1)

Released 01 November 2010

The Java Apache Mail Enterprise Server (a.k.a. Apache James) Project is happy to announce the release of version 3.0-M1 (Milestone 1) of the Apache James server.

The Apache James Server is a 100% pure Java enterprise mail server based on open protocols. Currently supported are SMTP/LMTP, POP3, IMAP4 protocols together with several different storage solutions (relational database via JPA and JDBC, File system with MailDir, JCR Content Repsitory).

The James server also serves as a mail application platform. It hosts the Apache Mailet API, and acts has a Mailet container. This feature makes it easy to design, write, and deploy custom applications for mail processing. This modularity and ease of customization is one of James' strengths, and can allow administrators to produce powerful applications surprisingly easily.

Features for that version include enhancements to nearly every area of functionality, including full IMAP support, improved mailing list capabilities, fastfail support, SMTP API for developing own fastfail filters and the next revision of the Mailet API.

This was an exciting time in James development and we thank all contributors.

We are still actively looking for eager, capable developers to contribute to James. If you're interested in contributing to the James project, please subscribe to the James mailing lists.

Information about James can be found at the James web site at http://james.apache.org/.

Sub-task

  • [JAMES-402] - Add IPv6 support to NetMachter.
  • [JAMES-404] - Check binding to specific addresses for IPv6 support.
  • [JAMES-494] - Refactor the service methods to inject services via setters
  • [JAMES-495] - Decide how to replace Avalon Configuration
  • [JAMES-933] - Refactor SMTPServer to use MINA for sockets
  • [JAMES-946] - Remove all dependencies which exists in central maven repository from stage
  • [JAMES-951] - Refactor POP3Server to allow usage of MINA for sockets
  • [JAMES-952] - Refactor ImapServer to allow usage of MINA for sockets
  • [JAMES-953] - Refactor RemoteManager for usage of MINA for sockets
  • [JAMES-977] - Rewrite RemoteDelivery so it use camel + jms for outgoing spool
  • [JAMES-985] - Store the MimeMessage in an extra datastore and just load it on demand

Bug

  • [JAMES-301] - Pop3 TLS and Thunderbird 0.7 do not go together
  • [JAMES-636] - Policy in environment.xml is... ignored?!?
  • [JAMES-745] - XMLRecipientRewriteTable and JDBCRecipientRewriteTable not work symetric
  • [JAMES-749] - LDAPUserRepository not work
  • [JAMES-781] - James will not start if there is directory with too many files and folders in the repostiory path
  • [JAMES-820] - java.io.IOException: Unknown encoding: 8-bit in AttachmentFileNameIs matcher
  • [JAMES-826] - Source distribution build is broken
  • [JAMES-848] - run.bat and run.sh contain absolute entries to build path for runtime classpath
  • [JAMES-852] - pop3server-function tests found in a deadlock on hudson
  • [JAMES-875] - Message-ID changed by mailets (MSGID-FROM-MTA-HEADER changed)
  • [JAMES-876] - cannot start as spring-deployment when built from trunk as described in HOW-TO.TXT
  • [JAMES-877] - cannot start spring-deployment nightly build as described in provided batch file
  • [JAMES-880] - bug with sql query for postgresql jdbc driver
  • [JAMES-882] - RecipientRewriteTable-Store is not working anymore
  • [JAMES-883] - Rare Deadlock in pop3server/pop3servertest found on hudson.
  • [JAMES-899] - RemoteDelivery sends a message again and again if transport.close() throws a MessagingException
  • [JAMES-904] - DB Connection problem: Reason in log: Component named "database-connections" failed to pass through the Starting stage.
  • [JAMES-932] - James 'initialize' reports deprecated config usernames servernames
  • [JAMES-936] - NPE when using FileMailRepository
  • [JAMES-939] - SMTP Auth does not respect "*" to cancel AUTH
  • [JAMES-940] - Commons configuration fails on parsing values with "," in it
  • [JAMES-941] - FetchMail initializes some mail attributes with "null" values, which are then ignored by HasMailAttribute matcher.
  • [JAMES-942] - James FetchMail instances are sharing the same Properties class instance preventing correct setting of mail.pop3.port etc
  • [JAMES-949] - SMTP Async I/O - Core command handler not found in config
  • [JAMES-950] - SMTP Async I/O - missing library
  • [JAMES-969] - Mailets (MailetContext) does not write to log file
  • [JAMES-970] - LocalJamesUsersRepository should check instanceof implementation
  • [JAMES-972] - JDBCDomainList throws NPE on startup
  • [JAMES-973] - RETR command only fetch 1 line of message
  • [JAMES-974] - Not able to login to Remotemanager after login failed before in the session
  • [JAMES-975] - DNSBounce Mailet throws NPE
  • [JAMES-978] - SendMailHandler get loaded twice
  • [JAMES-979] - IOException when closing mail client
  • [JAMES-981] - OOM when using ConsumerTemplate (JMS) for RemoteDelivery
  • [JAMES-986] - MailImpl.dispose() is not always called and so .m64 files are leaked
  • [JAMES-988] - JDBC RecipientRewriteTable does not provide implementation of the domainlist service
  • [JAMES-990] - Exception at first start for JDBCDomainList Configuration
  • [JAMES-991] - IllegalStateException during shutdown
  • [JAMES-994] - JDBCRecipientRewriteTable does not work when using Postgresql
  • [JAMES-995] - Unable to spool message on windows
  • [JAMES-996] - Spamassassin plugin in not working in current trunk
  • [JAMES-998] - XMLDomainList throws NPE if no domainname was specified
  • [JAMES-1004] - persistence.xml use jpa spec 1.0 but should use 2.0
  • [JAMES-1005] - POP3 Stat/List hangs on second execution during POP3Session
  • [JAMES-1006] - LIST msgnum fails with "-ERR Message (1) already deleted."
  • [JAMES-1010] - MSGID-FROM-MTA-HEADER
  • [JAMES-1011] - auth login failed
  • [JAMES-1012] - Can't enable ssl/tls for POP3
  • [JAMES-1013] - DO NOT Upgrade camel 2.2.0 to 2.3.0 - IMPORTENT!!!
  • [JAMES-1014] - Terminating Open Connections
  • [JAMES-1016] - Snapshot deployment of spring-deployment fails.
  • [JAMES-1017] - Exception when trying to start tomcat with james-server-spring-deployment-3.0-SNAPSHOT.war and java 1.5
  • [JAMES-1019] - getDomainsInternal in JDBCRecipientRewriteTable needs reworked
  • [JAMES-1021] - Base64 encoded messages get corrupted when posting to Mailbox
  • [JAMES-1023] - SMTPServer does not respect the verifyIdentity configuration
  • [JAMES-1024] - JDBCGreylistHandler does not respect the whitelistedNetworks configuration
  • [JAMES-1025] - Handshake fails when using SSL enabled services (SMTPS,POP3S,IMAPS)
  • [JAMES-1026] - No consumers available on endpoint: Endpoint[direct://mailserver]
  • [JAMES-1030] - ValidRcptHandler returns 554
  • [JAMES-1033] - IMAPServer does not disconnect client after idle 30 minutes
  • [JAMES-1035] - XML/JDBCRecipientRewriteTable should not implement DomainList
  • [JAMES-1038] - Fetchmail gives error in (pre) 3.0 codeline
  • [JAMES-1044] - SpringProtocolHandlerChain does not load handlers correctly when the same handler is used for different ProtocolHandlerChain instances
  • [JAMES-1061] - NPE when connect to smtpserver with ipv6 ipaddress
  • [JAMES-1069] - Exception when start JAMES and emails are still in queue
  • [JAMES-1077] - Exception not managed during smtp dialog
  • [JAMES-1086] - Failed delivery for exchangeId
  • [JAMES-1087] - System properties are not set in the james startup script

Improvement

  • [JAMES-347] - make POP3Handler.java/POP3Server.java and AvalonUsersStore.java extensible
  • [JAMES-354] - optimize James integration under J2EE for next release
  • [JAMES-422] - allow for performant SSL/TLS based on openssl
  • [JAMES-439] - Generate an Eclipse .classpath file during build
  • [JAMES-493] - Refactor James components/services to simplify their usage in other IoC containers (SDI)
  • [JAMES-551] - Use MINA as framework
  • [JAMES-607] - Rewrite MBoxMailRepository to use mstor
  • [JAMES-645] - Instrumentation / Manageability for DNSServer / dnsjava
  • [JAMES-758] - InSpammerBlacklist latency seriously affects throughput
  • [JAMES-767] - not print exception when shutting down server
  • [JAMES-803] - Add ability to load resources from the classpath instead of the file system
  • [JAMES-805] - Change arg0, arg1 etc parameters to the original javadoc names.
  • [JAMES-825] - spring-deployment: Adopt HOW-TO for binary distribution
  • [JAMES-902] - Upgrade to JavaMail 1.4.2
  • [JAMES-919] - Export DefaultRecipientRewriteTable through RecipientRewriteTableStore API
  • [JAMES-923] - [smtp] Replace Avalon interfaces with injection
  • [JAMES-938] - IMAP should work with VirtualHosting
  • [JAMES-947] - Spring deployment should pick up jars in conf/lib and add it to classpath
  • [JAMES-966] - Refactor LoaderService to not create instances of class on its own
  • [JAMES-976] - Replace current Spooling with use of JMS
  • [JAMES-987] - RetrCmdHandler and TopCmdHandler shouldn't store the Message in memory
  • [JAMES-989] - Use Derby 10.5.3 as Dependency
  • [JAMES-992] - Limit max line length for protocol when using Netty
  • [JAMES-1008] - Rename meta-inf to META-INF in javamail-util
  • [JAMES-1020] - ReadOnlyUsersLDAPRepository should use search instead of list for finding users
  • [JAMES-1034] - IsWhitelist matcher should be able to match against domains and ipaddresses / networks
  • [JAMES-1037] - Implement JPADomainList and JPARecipientRewriteTable
  • [JAMES-1039] - Move javamail-util to common-util
  • [JAMES-1046] - Improve Activemq spool
  • [JAMES-1048] - Move 2.3 mail persistence classes to mail/spool projects
  • [JAMES-1053] - Rework MockJSR250Loader
  • [JAMES-1060] - Use javamail system properties in startup scripts to let javamail handle bad formated messages more friendly
  • [JAMES-1063] - Split domainlist-function to domainlist-xml, domainlist-jdbc and domainlist-jpa
  • [JAMES-1064] - Make DomainList implementations configurable via domainlist.xml
  • [JAMES-1070] - Rename common-util project to util
  • [JAMES-1071] - Rename spoolmanager to core-function and migration spool-api to core-api
  • [JAMES-1080] - Rename spring-deployment to container-spring (+ merge spring-common within)

New Feature

  • [JAMES-126] - Add support for APOP authentication protocol
  • [JAMES-290] - support STARTTLS (port 465 is deprecated)
  • [JAMES-355] - API to the SMTP Server
  • [JAMES-497] - Introduce use of Maven2
  • [JAMES-575] - Improved MailetSDK
  • [JAMES-670] - Per IP connection limiting is not configurable per service, nor is the configuration logged during initialization.
  • [JAMES-688] - Replacement of Avalon with something new, modern and perspective technology
  • [JAMES-754] - Add Support for LMTP: Local Mail Transfer Protocol
  • [JAMES-761] - Create a Sieve enabled delivery Mailet that files into MailboxManager
  • [JAMES-834] - Webcontainer Deployment (WAR)
  • [JAMES-911] - Migrate from Avalon to something else
  • [JAMES-924] - Add support for POP3 STARTTLS aka STLS
  • [JAMES-925] - Add suport for CAPA command
  • [JAMES-934] - Read-Only LDAP repository
  • [JAMES-956] - work on james-server-experimental-activemq-function
  • [JAMES-982] - Include JCR IMAP implementation
  • [JAMES-993] - start/stop scripts creation during build
  • [JAMES-999] - User LocalUsersRepository for localusersrepository
  • [JAMES-1003] - ClassLoader with External libs
  • [JAMES-1045] - Add maildir support to JAMES Server
  • [JAMES-1058] - Add mail priority handling to ActiveMQMailQueue

Task

  • [JAMES-589] - Build Debian and Ubuntu packages of james
  • [JAMES-605] - DB Access tasks: deprecate mordred, add better defaults for dbcp (document them), remove autoReconnect from sample url
  • [JAMES-628] - Fix javadocs in james
  • [JAMES-683] - Change name of sar to use james-server instead of james.
  • [JAMES-739] - Remove MailetContext as dependency of SMTPServer in not backward compatible release
  • [JAMES-774] - Add documentation for the dns ttl issue
  • [JAMES-839] - Check LICENSE/NOTICE/HOW-TO for spring deployment generated packages.
  • [JAMES-845] - Geronimo - JAMES Server integration
  • [JAMES-914] - Upgrade JavaMail to 1.4.3
  • [JAMES-915] - Replace deprecated MailAddress.getUser() and MailAddress.getHost() with MailAddress.getLocalPart() and MailAddress.getDomain()
  • [JAMES-918] - Build adapter to map Avalon Configuration to Commons Configuration
  • [JAMES-927] - Write unit tests for nntpserver
  • [JAMES-928] - Rewrite NNTPServer to use the same pattern as SMTPServer/POP3Server
  • [JAMES-929] - Rewrite RemoteManager to use the same pattern as SMTPServer/POP3Server
  • [JAMES-930] - Refactor socket services to use composition instead of inheritance (AbstractProtocolServer to become a component)
  • [JAMES-943] - Replace phoenix and spring-phoenix deployment in favor of pure spring
  • [JAMES-945] - Remove ant build and just use mvn
  • [JAMES-954] - Replace DefaultTimeScheduler (cornerstone) with ScheduledExecutorService (java5 concurrent)
  • [JAMES-955] - Replace DefaultThreadManager (cornerstone) with ExecutorService (java5 concurrent)
  • [JAMES-957] - [NNTP] Factor Into Seperate Product
  • [JAMES-958] - Seperate the implementation of MailetContext and MailServer
  • [JAMES-959] - Allow to use "plain" ssl for socket with MINA
  • [JAMES-960] - Replace DataSourceSelector / DataSource with something else to remove cornerstone dependencies
  • [JAMES-961] - Replace cornerstone store
  • [JAMES-962] - Mark JamesUser as @deprecated, because Alias and Forward should be set with RecipientRewriteTable
  • [JAMES-967] - Upgrade to spring 3.0.0
  • [JAMES-971] - Replace LinearProcessor/StateAwareProcessorList/SpoolManager with CAMEL based implementation
  • [JAMES-983] - Rewrite POP3Server to use the MailboxManager / Mailbox backend which is used by IMAP too
  • [JAMES-984] - Upgrade to ActiveMQ 5.3.1
  • [JAMES-997] - Upgrade to jackrabbit 2.1.0
  • [JAMES-1000] - Upgrade to OpenJPA 2.0.0
  • [JAMES-1001] - Upgrade to Spring 3.0.2
  • [JAMES-1022] - Upgrade to NETTY 3.2.1.Final
  • [JAMES-1027] - Upgrade to activemq 5.3.2
  • [JAMES-1028] - Upgrade Bouncycastle to latest release
  • [JAMES-1029] - Remove Torque implementation of imapserver
  • [JAMES-1042] - Remove RecipientRewriteTableStore
  • [JAMES-1043] - Upgrade to activemq 5.4.0
  • [JAMES-1049] - Upgrade to activemq 5.4.1
  • [JAMES-1051] - split spoolmanager module into mailetcontainer-api and mailetcontainer-impl.
  • [JAMES-1062] - Upgrade to spring 3.0.4-RELEASE
  • [JAMES-1066] - Split user-function to user-jpa, user-jcr ....
  • [JAMES-1068] - Rename mailetcontainer-impl to mailetcontainer-library
  • [JAMES-1072] - Merge mailetpackages.xml and matcherpackages.xml into mailetcontainer.xml
  • [JAMES-1073] - Remove DataSourceSelector interfface and implementation
  • [JAMES-1075] - Remove Configurable interface from JamesMailetContext
  • [JAMES-1082] - Upload james 3.0-M1 artifacts for download
  • [JAMES-1083] - Enable JMX by default and secure it via user/pass
  • [JAMES-1088] - Merge RecipientRewriteTable and ManageableRecipientRewriteTable

Wish

  • [JAMES-539] - Split config.xml in many parts
  • [JAMES-889] - Independent SMTP Product ...?
  • [JAMES-893] - JSR250 Replacement For Avalon Framework

Version 2.3.1

Released 23 October 2006

Cryptography is now provided by Apache Crypto Mailets. Users should check that org.apache.james.mailet.crypto.mailet and org.apache.james.mailet.crypto.matcher packages have been added to the mailetpackages element in the configuration file.

Version 2.3.0 Final

Released 23 October 2006

Version 2.3.0rc5

Released 12 October 2006

Detail

Bug

  • [JAMES-625] - an empty mbox will cause an error at pop3 login
  • [JAMES-644] - FileRegexMatcher possibly leaks minor memory on startup
  • [JAMES-649] - error "OutOfMemoryError: JAVA HEAP SPACE" in connections log file when doing a POP TOP for 4000 messages
  • [JAMES-655] - MboxMailRepository throws NPE when storing mail with mail from: <>

Version 2.3.0rc4

Released 2 October 2006

Detail

Bug

  • [JAMES-626] - Invalid (outdated) urls in config files.
  • [JAMES-631] - Default host configuration for InSpammerBlacklist is relative: it should contain a trailing "." or it will reject all mail when the default domain has an "*" IN A rule.
  • [JAMES-638] - Wrong default encoding in text message (Autoconverted: from 8bit to quoted-printable)
  • [JAMES-639] - SerialUID is not hardcoded

Task

  • [JAMES-618] - Move server-site documents from james/server repository to james/site/server repository
  • [JAMES-634] - Fix m2 projects to not lookup dependencies on ibiblio, to simplify the website build and to include 2.2.0 and 2.3.0 docs

Version 2.3.0rc3

Released 15 September 2006

Detail

Bug

  • [JAMES-327] - Mailet overview not complete
  • [JAMES-579] - Update license headers and NOTICE to follow the latest ASF requirements
  • [JAMES-591] - LogMessage mailet use wrong configutre option
  • [JAMES-594] - JVM-OPTS get passed two times
  • [JAMES-603] - Outgoing spooling stuck over old mails when more than 1000 old mails are present in outgoing.
  • [JAMES-609] - MailImpl.setMessage and possible NPE: regression from 2.2.0 and 2.3.0rc1

Task

  • [JAMES-541] - Check what we need to bundle bcprov BouncyCastle JCE provider
  • [JAMES-613] - Define a new version for Mailet API and update James.java to return the new version.

Wish

  • [JAMES-581] - Add an "Upgrade documentation" to our docs explaining the upgrade from 2.2.0 to 2.3.0

Version 2.3.0rc2

Released 12 August 2006

Detail

Bug

  • [JAMES-574] - Annoying logging of whitelist/blacklist nomatching as "unknown host exception thrown: listname" if INFO is enabled
  • [JAMES-580] - NPE is issued when receiving a "read receipt" from MS Outlook, and <checkValidSenderDomain> is set to true
  • [JAMES-584] - FileStreamStore diskspace leak for removed messages in file based spool under windows
  • [JAMES-585] - SMTP Server may leak temporary ($[JAMES}/temp/*.m64) files
  • [JAMES-587] - CommandListServManager does not properly handle invalid commands.
  • [JAMES-588] - XMLResource getString methods have incorrect javadocs, and one will throw an NPE.
  • [JAMES-612] - James File Repository Error: Too many open files

Task

  • [JAMES-432] - Reorganize and update xdocs documentation and site generation

Wish

  • [JAMES-582] - Released packages confusions (name, artifacts)

Version 2.3.0rc1

Released 25 July 2006

Detail

Bug

  • [JAMES-566] - Fastfail DNSRBL blacklisted messages are rejected even if the sender user is successfully SMTP AUTHenticated
  • [JAMES-570] - James insert a Return-Path: null in outgoing email

Task

  • [JAMES-568] - reorganize download area structure

Version 2.3.0b3

Released 15 July 2006

Detail

Bug

  • [JAMES-554] - Set the right svn property for excutable files
  • [JAMES-559] - Message body get lost after call saveChanges() and move to other processor
  • [JAMES-560] - SetMimeHeader not throw an MessagingException if needed config values missed
  • [JAMES-561] - User aliasing does not work

Version 2.3.0b2

Unreleased

Detail

Bug

  • [JAMES-527] - data-source for default derby maildb is configured with a relative path
  • [JAMES-535] - Denial of service (CPU consumption) via a long argument to the MAIL command.
  • [JAMES-538] - Original headers are lost when trying to alter headers of a cloned message
  • [JAMES-540] - catch lifecycle problems for handlers

Improvement

New Feature

  • [JAMES-537] - Add ConfigOption to disable the RemoteManager

Task

  • [JAMES-496] - Add a default hardcoded configuration for the SMTPHandlerChain
  • [JAMES-529] - Add a GenericAddFooter for use in AddFooter and CommandListservFooter
  • [JAMES-536] - Decide what to do with repository implementations configured by default (db/dbfile/file)

Version 2.3.0b1

Released 9 June 2006

Details

Bug

  • [JAMES-499] - Inconsistent usage of the lastUpdated field for Mail objects
  • [JAMES-505] - ClassCastException in UsersRepositoryAliasingForwarding using file based users store
  • [JAMES-512] - OutOfMemoryError -- object not released.
  • [JAMES-522] - Having the ClamAVScan mailet configured, but clamd unavailable when JAMES starts, keeps JAMES from starting.
  • [JAMES-524] - James fails to create mysql tables with mysql-4.1.

Task

  • [JAMES-513] - Rename AddHeader and AddHeaderHandler

Version 2.3.0a3

Details

Bug

  • [JAMES-456] - AddFooter mailet javax.mail.internet.ParseException
  • [JAMES-474] - NullPointerException and bodymessage lost with weird configurations in message spooling
  • [JAMES-489] - ArrayIndexOutOfBoundsException in RemoteDelivery when an mail has errorstate and error-message 0
  • [JAMES-490] - Javamail 1.4 regression: SocketFetcher changed to require SocketFactory implementation
  • [JAMES-501] - sendmail.py get not include in build
  • [JAMES-503] - SpoolManager locking issues
  • [JAMES-504] - RemoteDelivery threads do not unlock delayed mails

Version 2.3.0a2

Details

Bug

  • [JAMES-368] - AddFooter couldn't process mails which MimeType is multipart/related
  • [JAMES-419] - NPE during 8bit conversion of non-mime messages
  • [JAMES-434] - NPE on empty sender and AUTHenticated user
  • [JAMES-443] - AddFooter and Encoding issues
  • [JAMES-446] - NPE while fetching mail (FetchMail)
  • [JAMES-447] - ClassCastException when storing multipart message without Msg ID
  • [JAMES-452] - Broken messages after passing james
  • [JAMES-455] - AddFooter mailet throw UnsupportedEncodingException
  • [JAMES-458] - SSL not working in James 2.3.0a1
  • [JAMES-459] - Incompatible/Duplicate excalibur-cli-1.0.jar library in classpath
  • [JAMES-460] - Running James as an NT service
  • [JAMES-462] - Error in message.getLineCount (Error using NotifyPostmaster with James 2.3)
  • [JAMES-466] - java.sql.SQLException: Error reading from InputStream java.io.IOException in current trunk
  • [JAMES-467] - corrupt messages in james trunk
  • [JAMES-470] - DNSRBLHandler config error
  • [JAMES-473] - AddHeaderHandler configure bug
  • [JAMES-475] - SQLException on james trunk after build and without modifications of config.xml
  • [JAMES-476] - NPE in RemoteDelivery
  • [JAMES-482] - incorrect state on duplicate mail (LinearProcessor)

Improvement

  • [JAMES-158] - Stream body in JDBCMailRepository.store(Mail)
  • [JAMES-299] - Support for SMTP auth to gateway server in RemoteDelivery mailet
  • [JAMES-371] - Speed improvement in SpoolManager
  • [JAMES-438] - add GenericMailet.getInitParameter(name,default)
  • [JAMES-440] - Improve DBCP: provide more DBCP options, like removeAbandoned
  • [JAMES-441] - Add an option to support aliases (CNAME) for MX records
  • [JAMES-445] - Enforcement for HELO/EHLO commands before MAIL
  • [JAMES-450] - "LocalUsers" user repository should be wired in the assembly and not hardcoded in components
  • [JAMES-469] - Make SMTP message queuing configurable (as an Handler)
  • [JAMES-477] - Configure option to disable heloEhloEnforcement to be compatible with james < 2.3.0
  • [JAMES-478] - Only check against RBL if the client is not allowed to relay

New Feature

  • [JAMES-427] - [PATCH] Introduce Unit Testing
  • [JAMES-437] - add failed recipient address to log when authorization fails
  • [JAMES-465] - Check for valid sender domain in mail from
  • [JAMES-468] - Limit MaxRcpt per Email
  • [JAMES-471] - Tarpit support

Task

Wish

  • [JAMES-451] - Check for valid domain in HELO

Version 2.3.0a1

Released 15 February 2006

James 2.3.0a1 is "storage" compatible with 2.2.0 (It uses the same files/db formats of James 2.2.0). Configuration should be updated following this instructions. Mailets developed against 2.2.0 are not binary compatible with 2.3.0 but rebuilding mailets in 2.3.0a1 should be an easy task: just replace "Component"s with "Service"s and replace "MailStore" with "Store" and rebuild. Below are some highlights of features and changes already available:

  • Phoenix container upgraded to the latest trunk: better classpath management for mailets
  • Derby support: also made it the default storage engine
  • JavaMail 1.3.2 (not JavaMail 1.3.3 because of known bugs with Base64 encoding)
  • Upgraded dependencies to the latest known stable releases (dnsjava, excalibur components, cornerstone, etc.)
  • Removed FetchPop
  • Command pattern for SMTPServer configuration (make it easier for developers to customize fastfail)
  • Increased components granularity/flexibility: many top level components have been refactored to be more modular (look at the new assembly.xml)
  • SMTP server now supports 8BITMIME, ENHANCEDSTATUSCODES, PIPELINING
  • Introduced a few experimental S/MIME and Bayesian matcher/mailets
  • Fixed more than 40 bugs against 2.2.0
  • And much more!

Details

Bug

  • [JAMES-138] - Don't keep all mailboxes in-memory forever
  • [JAMES-152] - When a Received header is invalid mail may be created with a null remote address and host name
  • [JAMES-154] - fetchmail config. files not copied to .sar
  • [JAMES-237] - J2 1.5'enum' is a keyword
  • [JAMES-250] - fail to start if installed under a "bin" directory
  • [JAMES-264] - mail list loop caused by using Return-Path
  • [JAMES-286] - Exceeding maximum value with MAIL SIZE causes NullPointerException
  • [JAMES-295] - Missing sqlDefs wont be detected
  • [JAMES-296] - James does not handle Source Routing
  • [JAMES-300] - Fetchmail can't fetch mails
  • [JAMES-305] - AttachmentFileNameIs never matches if the message is S/MIME signed
  • [JAMES-306] - AttachmentFileNameIs may throw UnsupportedEncodingException
  • [JAMES-311] - Nntp very picky with clients
  • [JAMES-312] - AttachmentFileNameIs matcher may throw an Exception examining a multipart/alternative message
  • [JAMES-316] - java.lang.ArrayIndexOutOfBoundsException from RemoteDelivery
  • [JAMES-317] - FromProcessor doesn't delete, throws ClassCastException
  • [JAMES-318] - java.lang.NullPointerException when host is unknown
  • [JAMES-320] - Some messages cause POP3 output stream to freeze on RETR.
  • [JAMES-323] - using toUppercase, toLowerCase, equalsIgnoreCase without specifying the locale is a bug
  • [JAMES-328] - TOP <msg> 0 does not return a terminator on error
  • [JAMES-329] - DefaultUsersJdbcRepository readUserFromResultSet incorrect
  • [JAMES-337] - Exception when FromRepository tries to delete a message
  • [JAMES-343] - James does not compile using Sun JDK 5.0
  • [JAMES-356] - MimeMessageWrapper does not handle multiline headers
  • [JAMES-359] - remote address from Received header is not handled
  • [JAMES-361] - DSNBounce often report the dsn Status 5.5.0 incorrectly
  • [JAMES-372] - Inboxes deleted during OutOfMemoryError
  • [JAMES-378] - DSNBounce creates not rfc1894 compliant notifications
  • [JAMES-379] - MailImpl.duplicate() should also clone attributes and not only the container HashMap
  • [JAMES-380] - ESMTP Compliance fix
  • [JAMES-383] - new posts hanging
  • [JAMES-387] - Exception in BayesianAnalysis
  • [JAMES-396] - Wrong column order (IMHO) in primary key definition for SpoolRepositories.
  • [JAMES-413] - James does not resolve CNAME DNS registrations
  • [JAMES-417] - ClassCastException handling the recipients after a DSNBounce
  • [JAMES-418] - Loader uses wrong method to obtain class loader/doesn't set context class loader
  • [JAMES-420] - Sometimes messages are delayed or stalled in the spool
  • [JAMES-421] - MailImpls sharing MimeMessages / LinearProcessor not cloning it after a partial match.
  • [JAMES-428] - Deadlock in ServerConnection
  • [JAMES-430] - MailImpl#writeContentTo leaks thread
  • [JAMES-431] - Line ending and CRLF.CRLF issues in POP3 and SMTP
  • [JAMES-435] - James Service Wrapper displays wrong James version
  • [JAMES-436] - James trunk cannot be built with jdk1.4

Improvement

  • [JAMES-270] - Add MailAttributes to indicate when default values have been applied
  • [JAMES-303] - AttachmentFileNameIs matcher should be able to analyze zip file attachments
  • [JAMES-321] - Comments on configuri
  • [JAMES-333] - Build Broken in HEAD revision
  • [JAMES-338] - Upgrade to JavaMail 1.3.2
  • [JAMES-357] - DSNBounce should be configured by default
  • [JAMES-360] - Support for Additional "received for" headers: e.g. X-Envelope-To
  • [JAMES-363] - Move PostmasterAlias from code to james-confix.xml
  • [JAMES-369] - Always announce AUTH capability to clients
  • [JAMES-375] - RFC 1854 - Command Pipelining support
  • [JAMES-377] - rfc2034 ENHANCEDSTATUSCODES compliance
  • [JAMES-388] - Upgrade to dnsjava 2.0.0
  • [JAMES-389] - Invert "precompilation" logic for jdbc3
  • [JAMES-395] - Support latest hsqldb in sqlResources.
  • [JAMES-398] - Add SMIME mailets for signature verification and message decrypt
  • [JAMES-399] - Update bouncycastle to 129 and remove jdk13 compatibility
  • [JAMES-407] - James inprotocol handling framework
  • [JAMES-410] - Re-enable EHLO support in RemoteDelivery
  • [JAMES-411] - update Mailet's Mail to support most of the current james mailets
  • [JAMES-412] - Increase James component granularity / flexibility
  • [JAMES-414] - Add more flexibility to LocalDelivery

New Feature

Task

  • [JAMES-149] - Add soft-fail to unresolved received from domains
  • [JAMES-190] - Apache license 2.0
  • [JAMES-391] - Move "candidates" libraries to the official lib / remove unused libraries
  • [JAMES-392] - Resolve deprecation use from MailetAPI for the next release
  • [JAMES-393] - Use Derby and db providers by default instead of file repositories.
  • [JAMES-394] - Remove OLD mm.mysql driver (not compatible with newer MySQL db)
  • [JAMES-400] - Move previous SMIME matcher/mailets to the new "smime" subpackages
  • [JAMES-406] - Investigate about libraries upgradability (cornerstone/excalibur/avalon/phoenix)