8000 Releases · dbmail/dbmail · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Releases: dbmail/dbmail

Version 3.5.4

02 Jul 10:54
762b63d
Compare
Choose a tag to compare

DBMail 3.5.4 is now available.

The main changes are better support for docker and systemd, MySQL compression and an anomaly in how libzdb handles NULLs.

Improved docker and systemd support

Logging is now docker and systemd friendly thanks to Tom Ivar Helbekkmo, just set logfile = stderr and you're good to go. Expect an updated docker image in the next day or so.

Compression to save space

Significant disk space can be saved with compression. Postgres already does this but Sasha Gomanuke highlighted the excessive space used to store emails on MySQL so compression is now the default on dbmail_mimeparts. It's automated as usual, though as the table is read only until the update is complete those with a large or active installation might prefer to handle this manually. See https://dbmail.org/en/architecture/upgrading/ for how upgrades work.

The following SQL queries can be used to discover the disk size

PostgreSQL

SELECT
table_name,
pg_size_pretty(pg_total_relation_size(quote_ident(table_name))),
pg_total_relation_size(quote_ident(table_name))
FROM information_schema.tables
WHERE table_schema = 'public'
AND table_name = 'dbmail_mimeparts';

MySQL

SELECT table_schema, table_name, row_format, data_length, index_length
FROM information_schema.tables
WHERE table_name = 'dbmail_mimeparts';

ls -lh /var/db/mysql/dbmail/dbmail_mimeparts.ibd

Aligning PostgreSQL and MySQL/Oracle schemas with libzdb

Although libzdb does an excellent job of ensuring working with the three supported databases is easy, there is one aspect that is different - handling null data. Although often conceptually treated the same, the empty string is a value of zero length, whereas null is the absence of a value and select queries behave differently. As mime parts can be empty, this update aligns the way PostgreSQL and MySQL/Oracle are handled in DBMail.

https://dev.mysql.com/doc/refman/8.4/en/working-with-null.html
https://dev.mysql.com/doc/refman/8.4/en/problems-with-null.html

Version 3.5.3

31 May 16:41
13c99ea
Compare
Choose a tag to compare
  • Various memory leaks fixed
  • Fix invalid free and invalid read
  • sieve port changed to 4190 as per rfc5804

Version 3.5.2

14 Apr 13:35
cb7058c
Compare
Choose a tag to compare

This release focuses on ease of use:

  • Long options added
  • Man pages updated
  • Help refactored

Because there were so many options they were sometimes cryptic.
By adding long options and clarifying their use in the help and man pages they should be easier to understand and use.

v3.5.1: Merge pull request #409 from alan-hicks/main

29 Mar 08:14
0970ad9
Compare
Choose a tag to compare

This release has focused on reliability plus making DBMail easier to install and manage with significant improvements in documentation and logging.

Installation is easier and automatically creates and updates the database schema.

Configuration

The configuration file dbmail.conf has been reorganised so the most popular settings are at the top of the file, with improved documentation and examples.

There is a new section on the website to help new users https://dbmail.org/install/install-and-commission/ install and better manage DBMail.

The configuration file dbmail.conf is reorganised into sections making settings easier to find with examples and improved documentation.

Logging

Significant improvements have been made to logging.

Configuring logging is much simplified and uses the standard error, warning ... debug. The previous numeric options are still available if you need fine grained logging, but for most sites the syslog levels will be easier and more intuitive.

Logging is rationalised into a single log file instead of two making it easier to find errors.

The dbmail.conf setting is logfile = dbmail.log and errorlog = dbmail.err has been removed. As log files are essential you'll get an error until the errorlog has been removed from the config file. Logging is in a single place and is summarised as follows:

[DBMAIL]
file_logging_levels = notice
syslog_logging_levels = warning
logfile = /var/log/dbmail/dbmail-lmtpd.log

If you wanted to log debug information for the LMTP daemon, just add the following to the configuration file.

[LMTP]
file_logging_levels = debug
logfile = /var/log/dbmail/dbmail-lmtpd.log

After restarting the daemon all logging at or lower than debug will go to /var/log/dbmail/dbmail-lmtpd.log.

All the dbmail apps can be configured separately for log file and level, and the setting follows the app name.

Although the command line utilities are only used by administrators, they now have some feedback even if it mostly refers to the log file.

The config section names follow the app names making them easier to configure.

Docker

Docker support continues to improve and there are two Ubunto 24.4 Dockerfiles for test/development and a production build. The production build ensures all checks pass whereas development skips checks ensuring an image is built so it can be tested and debugged more easily.

  • Dockerfile-amd64-ubuntu2404-350
  • Dockerfile-amd64-ubuntu-devel

There is more information at https://dbmail.org/architecture/docker/ on how to build and configure the containers. They have been confirmed to build successfully on Debian.

curl://

Curl makes it easier to use an upstream SMTP server for sending emails.

Sending emails either though forwarding or via a Sieve script is now reliable thanks to curl. Although unlikely and not seen in the wild, it was possible that when using sendmail, it would receive an email for forwarding, but the docker image would be destroyed before it could be delivered. Curl enables an atomic transaction ensuring either guaranteed delivery or failure.

Miscellaneous

Ensuring reliability, automated tests have been refactored and now pass with the latest gmime 213. Production Dockerfiles run checks ensuring a successful build and test to ensure reliability.

Some headernames were missing and they are now checked and added if required.

All daemons use TLS following the removal of dbmail-timsieved, use dbmail-sieved instead.

Following the library version bump from gmime 2.6 to 3, all the failing checks are refactored and now pass. Some checks are also refactored to reflect changes in check v15.2 macros.

A longstanding bug re missing final mime boundary is now fixed.

Thanks,
Alan

v3.5

09 Jan 16:49
3d0c40d
Compare
Choose a tag to compare

DBMail 3.5 now has

  • automatic table creation on first install
  • Improved logging config
  • Required header names added if required
  • curl library added for SMTP forwarding
  • dbmail-sieved for starttls (deprecated dbmail-timsieved removed)
  • Checks refactored for gmime3
  • dbmail-announce mailing list added for release and other announcements
  • dbmail-general mailing list added for general discussion
  • Numerous bug fixes

v3.4.1

21 Oct 13:10
6fdc6a4
Compare
Choose a tag to compare
  • Missing flags fixed
  • Missing dbmail-sieved.txt added
  • Experimental Docker image created

v3.4.0

26 Aug 16:58
745ab75
Compare
Choose a tag to compare

dbmail-sieved now has STARTTLS
configure scripts updated with autoconf 2.71 automake 1.6.5

v3.3.1

15 Oct 15:18
ecc3107
Compare
Choose a tag to compare

MySQL 8 is supported and fixes an issue with 8.0.31 and libzdb

v3.3.0

05 Sep 14:49
ff9d195
Compare
Choose a tag to compare

DBMail is a Message Delivery Agent speaking IMAP, POP, ManageSieve and LMTP using industry standard PostgreSQL, MySQL and Oracle for secure scaleable storage.

This release bumps gmime to version 3.0 (3.2), all other requirements are the same.

v3.2.6

09 Jan 12:31
3d695b0
Compare
Choose a tag to compare

[3.2.6] - 2022-01-09

WARNING

  • the maintenance(dbmail-util) process should be issues in a maintenance window do to massive changes on database, see [#108]
  • compatibility compiler standard was raised to C17

Added

  • IMAP Daemon: added switch to control the sequence update strategy
  • IMAP Daemon: added switch to control the sync between \DELETE flag and the actual state of the message (deleted), see also mailbox_sync_batch_size.
  • Build: automatic installation script (v 0.5), #104
  • Maintenance(dbmail-util): added option to upgrade to utf8mb4(MariaDB/MySQL), --upgrade, beaware, this is an intensive process (depending on you database), a backup is advised [#108]

Optimizations

  • IMAP: optimizing differential state

Issues

  • fixing Outlook issue found on making a message read [#139]
  • fixing duplicate key by adding necessary handlers [#134]
  • fixing deleting forwards and aliases when deleting a user [#129]
  • fixing LMTP delivery in case of disabled users [#122]
  • fixing compilation issue on alpine and SmartOS [#123] [#124]
  • fixing sql issues related to MODSEQ [#111]
  • fixing LMTP segmentation fault on sieve error [#106]
  • fixing invalid utf-8 character adding sql conversion [#108]
  • fixing other sql issues (upgrade process) [#103] [#102] [#99] [#97] [#105] [#93]
  • fixing SIEVE crash on error [#106]
  • fixing debian build [#91]
0