Frequently asked questions about Qsmtp

Why is Qremote always failing with "can't_connect_to_any_server"

This happens when your libc supports IPv6 addresses, but your kernel does not. When Qremote tries to open an IPv6 socket to send the mail the syscall fails. Recompile with -DIPV4ONLY.

Why can't Outlook 2002 send mails?

Whoever wrote the SMTP engine of Outlook can't read RfCs. This is a property shared with programmers of many common internet worms as the Sober family. Outlook has a bug in their SMTP engine. It sends "MAIL FROM: <>", which is wrong. According to RfC 822 and 2822 there must not be whitespace between the colon and the opening brace. This is a very useful filter for Sober and friends as well as b0rken mailers like Outlook. If you don't want to disappoint your customers too much set smtp_space_bug in the filterconf file to 1. This will allow this space if the user is already authenticated. This way you will get rid of the worms without throwing out your Outlook users.
If anyone has knowledge if this is fixed in later revisions of Outlook please drop me a note.

RELAYCLIENT does not work

Qsmtpd ignores most environment settings used by qmail-smtpd, including RELAYCLIENT. Use control/relayclients (IPv4) and control/relayclients6 (IPv6) to set the hosts and networks allowed for relaying. The program addipbl from tools directory will help you adding entries to this file. You can build it with "make tools/addipbl".

Why do I get "warning: can not get free queue disk space" for every mail?

First: this should not happen if you are running Linux 3.12 or later, as that support fstatfs() syscall on a directory opened with O_PATH, and that is exactly what Qsmtp does. If it still happens for you on such a Linux system please report that problem to me.

Qsmtpd wants to check the queue size to see if the mail it is receiving would fit onto the disk. You can fix it with:

chmod 755 /var/qmail/queue

This will not allow Qsmtpd to read any file in the queue as the subdirectories with the actual queue contents are still not readable. This is only needed to that Qsmtpd can call statvfs() on a file in the queue directory that must exists (/var/qmail/queue/lock/sendmutex in this case).