Helios qmail FAQ

Pawel Foremski

Christian Löschenkohl

This file is free documentation.



Answers frequently asked questions about Helios qmail

1. Design questions
2. Installation procedure
3. Life with Helios qmail
4. Other questions

1. Design questions

Why is it the heck all scripted in PHP?!

There are several reasons.

First of all, Helios qmail is written (mostly in fact) in PHP because it aims to be flexible and easy to understand and adapt for individual needs. Apart of that it`s code is easier to maintain and extend, even without recompilation or restarting the server. Helios qmail should be used rather by experienced system administrators, not by "PHP & MySQL & Apache "programmers"/"webmasters"", because it was developed to make their lifes simplier. Only such persons can understand how to use this software reasonably.

Apart of that, scripts are in fact less (or even not) exposed for some security issues (if used right), for example buffer overflow vulnerabilities.

OK, but what about speed?

The answer is simple: Helios qmail is only little slower than stock qmail would be if it had Helios qmail`s features, so it is really fast (and reliable too).

If you are not convinced about this, take a look at the Helios qmail code and see where PHP scripts are plugged into the qmail. Most of them are executed during the SMTP session and one (new mail notification script) is executed during delivery time. What does it mean? Think what today delays SMTP sessions the most - usually these are antispam and antivir checks and sending the message data, so today the delay that executing a PHP script cause is about a few percents of common SMTP session time. Usually there is no big difference for example in sending a message in 10 or 11 seconds.

Remember that sending mails to remote hosts was only slightly modified and Helios qmail is in fact as fast as stock qmail in that. You can also turn off near all of it`s features (eg. if you do not use some of them) to speed it up.

But this is just plain wrong! It should be written in C!

First try to make your own qmail distribution and we will see if it is right for such project ;-).

2. Installation procedure

configure script does not understand passed options.

The problem is probably the getopt implementation. Check if you are using at least getopt 1.1.3 from util-linux package.

Database initialization fails.

Check if you passed good options to initdb-mysql script - in particular database administrator password.

3. Life with Helios qmail

I am trying to use some script and I get no output.

First of all, be sure that this script is intended to be used by users (eg. it is not a script executed by some system services).

Then, try to comment line containg error_reporting(0); in this script and see the output. If this does not help, try to use error_reporting(E_ALL);. Also check error reporting settings in your php.ini file.

After starting Helios qmail I get

1244 ?        S      0:00  |   \_ supervise qmail-send
2546 ?        Z      0:00  |   |   \_ [qmail-send] <defunct>

in the proccess list and SMTP service drops connection just after connecting to it.

This is caused by no connection between Helios qmail and your database. Check if your database is up and running (connect to it and try to execute some commands on Helios qmail accounts) and if you configured connectionstring and popconnectionstring properly in /var/qmail/control/qmailconfig file.

I get something like

Content-type: text/html
X-Powered-By: PHP/5.0.0RC1

in mail logs or after connecting to SMTP service.

You have installed PHP in CGI mode, which is wrong. Reinstall it as CLI and then check if php --version contains "CLI".

New mail notification script is not working.

Check if you have installed Mail_Mime library from PEAR properly.

I get something like

delivery 40: deferral:
status: local 0/10 remote 0/20

in mail logs.

You have not installed Mail_Mime library properly. Be sure to do it and add path to PEAR libraries in php.ini`s include_path.

4. Other questions

Why I am not allowed to make a binary package of Helios qmail?

Because it bundles with qmail source code, which is not free software (in GNU meaning). Rest of the package is licensed under GNU GPL.

I have found an awful english error in documentation!

Please let me know, I know that my English is not best. I am just waiting for corrections.

Why "Helios qmail"?

Because it derive from the Helios project.