hMailServer 4.4
hMailServer 4.4
Now when 4.3 is getting closer to be put up as stable, I feel it's better to keep future releases smaller and release more often instead. 4.3 have taken a ridiculous amount of time. (Some of you may remember that I said exactly the same after 4.1 but apparently I didn't... remember.).
So with this in mind, hMailServer 4.4 will "only" have the following new features:
It will be possible to specify the following properties for every domain (all optional)
- Max domain size
- Max number of accounts
- Max number of aliases
- Max number of distribution lists
- Max size of created accounts
- Max message size
(These have already been implemented)
It will be possible to configure caching for aliases, distribution lists, IMAP folders and message lists. This will allow you to run hMailServer in a simple cluster.
(Implementation started)
Most likely also:
- Re-ordering of rules and rule actions
(Implementation started a long time ago but I never finished it.)
Perhaps also:
- Auto reply expiration
(Not started)
So with this in mind, hMailServer 4.4 will "only" have the following new features:
It will be possible to specify the following properties for every domain (all optional)
- Max domain size
- Max number of accounts
- Max number of aliases
- Max number of distribution lists
- Max size of created accounts
- Max message size
(These have already been implemented)
It will be possible to configure caching for aliases, distribution lists, IMAP folders and message lists. This will allow you to run hMailServer in a simple cluster.
(Implementation started)
Most likely also:
- Re-ordering of rules and rule actions
(Implementation started a long time ago but I never finished it.)
Perhaps also:
- Auto reply expiration
(Not started)
Last edited by martin on 2006-10-22 14:37, edited 1 time in total.
Hi Martin,
do you plan to expand the "DB-methods" in the COM-API too?
Maybe you remember, that we discussed about getting returns for
select-, update-, insert- and delete-tasks f.e. That would make it
more easy and secure to use the COM-APi for some user-tasks
in relation of integrate the hmailserver in existing portals.
Gruenie
do you plan to expand the "DB-methods" in the COM-API too?
Maybe you remember, that we discussed about getting returns for
select-, update-, insert- and delete-tasks f.e. That would make it
more easy and secure to use the COM-APi for some user-tasks
in relation of integrate the hmailserver in existing portals.
Gruenie
Hi Martin,
maybe you remember our discussons about sychronisation of portal-users and hmailserver-accounts?!
My first intenton was to do all the tasks (adding/deleting accounts etc...) by myself using the mysql-functions.
Most of tasks are without any problems, but f.e. deleting an account is a much komplex task (deleting all
messages in the filesystem and, and, and). In this time I asked you, what exactly I have to do to delete an account.
You asked my why I'm not usin the COM-API - and I told you about the problems adding an existing portal-user
with an already md5-encrypted password, becaue it is impossible with the current possibilities of the COM-API.
Nevertheless I changed all tasks using the COM-API besides adding hmailserver-user-accounts of already existing
portal-users (because the md5-user-password would be encrypted again).
That all is working, I really have no problem using php and all of its possibilities, BUT it is an ugly solution.
For me and my portal alone there is no problem, but if others would use my portal-system, they would have to specify:
1. mysql-server-address
2. mysql-server-port,
3. database, user, pass etc....
in addition to the setting for the COM-API and all that only for one task, adding an existing portal-user to the
hmailserver-acoounts, if the user-passord is md5-encrypted.
Do you know, what I mean?
In addition to that I alsways have to have attention, if you change something in the database-structure etc.
No I changed all and I'm using the existing DB-mehods of your COM-API, but I never get any returns, I cannot check
the result because there is no "select"-property, so I "hope" in my script, that the update-task in your DB-method
was successful (copying the md5-password) until the moment I get an return-value.....hopefully!
Gruenie
maybe you remember our discussons about sychronisation of portal-users and hmailserver-accounts?!
My first intenton was to do all the tasks (adding/deleting accounts etc...) by myself using the mysql-functions.
Most of tasks are without any problems, but f.e. deleting an account is a much komplex task (deleting all
messages in the filesystem and, and, and). In this time I asked you, what exactly I have to do to delete an account.
You asked my why I'm not usin the COM-API - and I told you about the problems adding an existing portal-user
with an already md5-encrypted password, becaue it is impossible with the current possibilities of the COM-API.
Nevertheless I changed all tasks using the COM-API besides adding hmailserver-user-accounts of already existing
portal-users (because the md5-user-password would be encrypted again).
That all is working, I really have no problem using php and all of its possibilities, BUT it is an ugly solution.
For me and my portal alone there is no problem, but if others would use my portal-system, they would have to specify:
1. mysql-server-address
2. mysql-server-port,
3. database, user, pass etc....
in addition to the setting for the COM-API and all that only for one task, adding an existing portal-user to the
hmailserver-acoounts, if the user-passord is md5-encrypted.
Do you know, what I mean?
In addition to that I alsways have to have attention, if you change something in the database-structure etc.
No I changed all and I'm using the existing DB-mehods of your COM-API, but I never get any returns, I cannot check
the result because there is no "select"-property, so I "hope" in my script, that the update-task in your DB-method
was successful (copying the md5-password) until the moment I get an return-value.....hopefully!

Gruenie
And have you added this request to the feature request section? 
If I add this feature, do you promise that you will stop making annoyingly long posts over and over and over again throughout the different parts of the forum...? I find less things more annoying than long duplicate posts regarding the same thing... Just so you know it, it makes me much more irritated than the spam posts in the forum.
(I will _not_ add supports for select etc to the COM API. hMailServer is an email sever - not a database access component. I might add a property to set a MD5 password for accounts though.)

If I add this feature, do you promise that you will stop making annoyingly long posts over and over and over again throughout the different parts of the forum...? I find less things more annoying than long duplicate posts regarding the same thing... Just so you know it, it makes me much more irritated than the spam posts in the forum.

(I will _not_ add supports for select etc to the COM API. hMailServer is an email sever - not a database access component. I might add a property to set a MD5 password for accounts though.)
1. abashed: "no"
2. I cannot promise that, no, really, I cannot! What I can do is to promise, that I will do my best to keep posts shorter! Is that enough?
3. Hmmm... there is the column "accountpwencryption", which can be 0 or 2; so it would be not enough to "copy" an md5-ecrypted portaluser-password without the possibility to change the encryption-value
Shorter was not possible for me!
Gruenie

2. I cannot promise that, no, really, I cannot! What I can do is to promise, that I will do my best to keep posts shorter! Is that enough?


3. Hmmm... there is the column "accountpwencryption", which can be 0 or 2; so it would be not enough to "copy" an md5-ecrypted portaluser-password without the possibility to change the encryption-value
Shorter was not possible for me!

Gruenie
westdam, the above list goes for 4.4. All other features in the world will be postponed to a later version, such as 4.5, 4.6 or 5.0 
gruenie, is it enough that the execute-method in the COM API throws an exception if it fails? This way you can set the MD5 password in the database, and set the encryption method to 2. Right?

gruenie, is it enough that the execute-method in the COM API throws an exception if it fails? This way you can set the MD5 password in the database, and set the encryption method to 2. Right?
Well, if we would have a method to set/update the password and another one to set/update the encryption-value,
that should be exactly, what we need. So if we have an already md5-encrypted USER-password, we first add the
hmail-account and later we set/copy the md5-password into the hm_accounts-table and set the encryption-value to 2.
Both would be fine, if the execute-method in the COM-API throws an exception or if it returns "FALSE" if it fails.
that should be exactly, what we need. So if we have an already md5-encrypted USER-password, we first add the
hmail-account and later we set/copy the md5-password into the hm_accounts-table and set the encryption-value to 2.
Both would be fine, if the execute-method in the COM-API throws an exception or if it returns "FALSE" if it fails.
Now I'm using:
( defined in settings: $md5_value = 2; )
$obBaseApp = new COM("hMailServer.Application");
$database = $obBaseApp->Database;
if ( strlen($account_password) == 32 ) {
$sql = "Update hm_accounts SET accountpassword='$account_password', accountpasswordencryption=$md5_value WHERE accountaddress='$account_address'"; (or ID)
$execute = $database->ExecuteSQL($sql);
}
If I would get an exception or "FALSE" if it fails, all would be ok and we don't need additional properties or methods as far as I can see.
Gruenie
( defined in settings: $md5_value = 2; )
$obBaseApp = new COM("hMailServer.Application");
$database = $obBaseApp->Database;
if ( strlen($account_password) == 32 ) {
$sql = "Update hm_accounts SET accountpassword='$account_password', accountpasswordencryption=$md5_value WHERE accountaddress='$account_address'"; (or ID)
$execute = $database->ExecuteSQL($sql);
}
If I would get an exception or "FALSE" if it fails, all would be ok and we don't need additional properties or methods as far as I can see.
Gruenie
I've added that to the 4.3 branch. Only required a change on one line.
That SQL statement will only fail if the connection to the database server has been lost, or if the database has become corrupt in some way, so it's not likely..
By the way, that SQL statement may fail if $account_address contains a '. But perhaps you have already escaped() those.
(In 4.4, I've now implemented caching of distribution lists, aliases and all other object types except for IMAP folders and message lists.)
That SQL statement will only fail if the connection to the database server has been lost, or if the database has become corrupt in some way, so it's not likely..
By the way, that SQL statement may fail if $account_address contains a '. But perhaps you have already escaped() those.
(In 4.4, I've now implemented caching of distribution lists, aliases and all other object types except for IMAP folders and message lists.)
Martin,
I won't be so callous as to shamelessly beg you to add some of my wanted features to the next iteration of hMailServer. (But, if you feel like it, just do a search for my posts in the Features forum...)

My real reason for posting is that I just wanted to take a moment to say "Thank you!" for the fantastic and free resource to which you devote a whopping amount of time in development and support. I'm looking forward to 4.3 becoming stable any day now so I can deploy it and then wait for the creamy goodness of 4.4 at a later date.
Thanks again, Martin!
I won't be so callous as to shamelessly beg you to add some of my wanted features to the next iteration of hMailServer. (But, if you feel like it, just do a search for my posts in the Features forum...)


My real reason for posting is that I just wanted to take a moment to say "Thank you!" for the fantastic and free resource to which you devote a whopping amount of time in development and support. I'm looking forward to 4.3 becoming stable any day now so I can deploy it and then wait for the creamy goodness of 4.4 at a later date.
Thanks again, Martin!
Hi Martin,
you have added it to the 4.3. branch?
Cool, thank you!
The statement will only fail, if the db-connection has been lost or if the
db became corrupt? What is, if the statement includes an error, so that
the statement will not be executed?
To hold it as simple as possible, I asked you for a possibility to use the
select-statement together with the db-method, because to be sure, that
all worked as espected I would finish with a select to see if the update
was successful.
My usernames never include a ', only alphanumerics, underlines and
points are allowed, but nevertheless thanks for the advice!
Gruenie
you have added it to the 4.3. branch?
Cool, thank you!

The statement will only fail, if the db-connection has been lost or if the
db became corrupt? What is, if the statement includes an error, so that
the statement will not be executed?
To hold it as simple as possible, I asked you for a possibility to use the
select-statement together with the db-method, because to be sure, that
all worked as espected I would finish with a select to see if the update
was successful.
My usernames never include a ', only alphanumerics, underlines and
points are allowed, but nevertheless thanks for the advice!
Gruenie
mmm probabily on a 4.x version where x is above 4. Hehe michael as i understand martin will add the antispam measure (like advanced tarpitting or sender id , ecc ecc ) in the 4 version. Probabily he would see how the cache will improve the server performance.. I think cache is great but it's a bit hard to manage..
I don't really plan the scope of more than one version in head. I follow the number of votes the features have had though. Tarpitting is in place 10-12 or so, so I'm guessing perhaps in 4.5.
The thing is that I will try to keep the releases smaller and release more often instead. If I just start to add every request anyone wants it will be like 4.3 - it will take forever.
The thing is that I will try to keep the releases smaller and release more often instead. If I just start to add every request anyone wants it will be like 4.3 - it will take forever.

I'll be back in time for 4.5martin wrote:I don't really plan the scope of more than one version in head. I follow the number of votes the features have had though. Tarpitting is in place 10-12 or so, so I'm guessing perhaps in 4.5.



Michael
Missing Hmailserver ... Now running Debian servers
-
- Senior user
- Posts: 886
- Joined: 2005-11-28 11:43
hMailServer 4.3 will be released before I even put up an alpha of 4.4 here. I don't have the time to maintain two parallell versions..
As for 4.3, it will be put up as stable in a few days unless someone finds a serious issue in the current build. The 4.3 build is probably already more stable than any previous 4.x-version..
As for 4.3, it will be put up as stable in a few days unless someone finds a serious issue in the current build. The 4.3 build is probably already more stable than any previous 4.x-version..
(I know I wrote that it was a leak. But it actually wasn't really a leak. It was more that hMailServer kept some connection objects in memory even though the client has disconnected. The code that detects whether a client has disconnected sometimes come up with the wrong result. Having said that, from a user perspective it looks exactly like a leak 

I agree that the latest build is stable. We are pumping email through it without any errors or slowdowns. We have processed 167,915 messages since Saturday without any problem. And thanks to greylisting, we have blocked even more spam. I am scared to guess how many messages that would be without greylisting. Anyway, it is completely stable.
-
- Senior user
- Posts: 886
- Joined: 2005-11-28 11:43
-
- Senior user
- Posts: 886
- Joined: 2005-11-28 11:43
Martin, I hate to add this to this thread but I am not sure it really belongs anywhere else either. At one time I think I remember you saying that features would be added based on demand. Is there a page on the site that tracks the current top ten or so most requested features? If not, would it be possible to add such a page to the site? It's not so much a feature request for the application as for your website.
And my apologies if this is in the wrong forum or has been asked for before.

Global White List needs more votes.
http://www.hmailserver.com/forum/viewto ... viewresult
Check it out and support it if you like the idea.
http://www.hmailserver.com/forum/viewto ... viewresult
Check it out and support it if you like the idea.
hMailServer 5.4-B1950
MySQL 5.1.73
Domains: 32, Accounts: 1000+ , Messages: 1000.000+, Data size: 200GB+
Running since 18.7.2006 (hMailServer 4.2.2 - Build 199)
MySQL 5.1.73
Domains: 32, Accounts: 1000+ , Messages: 1000.000+, Data size: 200GB+
Running since 18.7.2006 (hMailServer 4.2.2 - Build 199)
- Blue Ninja
- Normal user
- Posts: 238
- Joined: 2005-12-31 00:22
- Contact:
The SPF / Backup MX feature needs more votes, too 
http://www.hmailserver.com/forum/viewto ... 7643#37643

http://www.hmailserver.com/forum/viewto ... 7643#37643
martin said in another post:
I will put it up as stable on sunday if nothing happens before that. Reason I haven't done it yet is that I have had limited time to spend on this forum last days (company kick-off last days), and when I put it up as stable I want to be able to monitor what's happening more closely.
The latest build doesn't have any known big issues as far as I know. The reason it has not been put up as stable is just that I have had little time to spend on the project the last days because of a company kickoff on my daytime job, and I when i put it up as stable I want to be able to monitor it more closely. I will put it up as stable tomorrow (sunday) unless something occurs before that..