[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Copyright (C) 1998 Bruce Guenter
VMailMgr Frequently Asked Questions.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
You will need a working C and C++ compiler and linker. You will not need any C++ libraries. The package is being developed under Linux using egcs and glibc version 2, and may rely on some gcc/g++ extensions.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This package should work without changes both with and without
shadow passwords as long as the shadow password libraries are
present when this package is built. The configure
script will
detect what method of shadow passwords are being used and the
programs will be built accordingly.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Yes, vmailmgr supports Courier-IMAP. Some minor steps are needed to make them work, the steps are in the next section of this file.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
VMailMgr is based around qmail's handling of virtual users, and as
such requires qmail for its operation. If you wish to use the init
file to start/stop vmailmgrd
or are installing the RPM package,
supervise-scripts version 2.2 (or later, available at
http://untroubled.org/supervise-scripts/)
and daemontools 0.60 (or later, available at
http://untroubled.org/rpms/daemontools/)
packages are required. If you need to use the vmailmgrd
daemon, you
will also need the unixserver
program, from the ucspi-unix package,
available at
http://untroubled.org/ucspi-unix/.
If you want to use the autoresponse feature, I recommend the use of
my own autoresponder program, qmail-autoresponder
available
at
http://untroubled.org/qmail-autoresponder/.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Output from vmailmgrd
can be recorded by either splogger
(part of
qmail) or with the logger that comes with several flavours of UNIX. To use
splogger
, pipe the output of vmailmgrd
into the command
`splogger vmailmgrd'. This will timestamp each entry and tag them with the
word `vmailmgrd'. By default, splogger
logs to facility 2 (mail). To
use logger
, pipe the output of vmailmgrd
into the command
`logger -t vmailmgrd -p mail.notice'.
See the respective man pages of these two programs for more information.
Note: The use of syslog
for logging messages is strongly discouraged
due to problems with inefficent and buggy implementation of syslog
.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Make a directory into which the output will go, for example
`/var/log/vmailmgrd'. Pipe the output of vmailmgrd
into the
command `multilog t /var/log/vmailmgrd'. See the
documentation for multilog
for more information on how to adjust its
output.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
VMailMgr supports Courier-IMAP, but Courier-IMAP does not auto detect VMailMgr. This means that some minor work is required for making the two work together.
AUTHMODULES
statement in
`/usr/lib/courier-imap/etc/imapd.config' and add
authvmailmgr as the first authentication module.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
If you are upgrading from an older version, you may need to make some changes to your system before or after doing the upgrade. The following table outlines the necessary changes. Note that you need to follow the instructions for all later versions of the software.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The vmailmgrd
daemon needs to be run by unixserver, as opposed
to being a stand-alone program previously.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Make sure the vmailmgrd
daemon and vmailmgr CGIs are disabled
before upgrading, and upgrade them along with the main
package. Changes were made to the daemon interface that will
cause adding users and aliases to flake out. As well, the
listdomain interface was completely redone.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The POP bulletin facility has been moved into a stand-alone
program that needs to be executed through checkvpw-postsetuid
.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
If you do not use the CGIs, you no longer need to run the
vmailmgrd
daemon.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The configuration changed from reading a single file to reading a
set of files in a directory. Read the configuration documentation
and run the program vconf2dir
.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The name of the user to which mail to an unknown user is delivered changed from `*' to `+'. If you were using this feature, either change all your domains to accomodate this change, or set the `default-username' config file to contain `*'.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The file format of the virtual password tables has changed from
plain text files to CDB tables. You will need to suspend local
deliveries before upgrading, and run the program vpasswd2cdb
as
each base user after upgrading, before re-enabling local
deliveries.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Put the string checkvpw into the file
`/etc/qmail/control/checkpassword' and restart qmail-pop3d
by
typing `/etc/rc.d/init.d/pop3d restart'.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Download and install relay-ctrl from http://untroubled.org/relay-ctrl/. It works with vmailmgr, for both POP3 and IMAP clients.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
There are two ways to log in without using multiple IP addresses.
For example, `/var/qmail/control/virtualdomains' contains `testdomain.org:testuser', user `testuser' exists, and has set up a virtual mailbox with the name `v'. The separators variable in `/etc/vmailmgr/' contains `@:'. This virtual user could log in as `v@testdomain.org', `v:testdomain.org', or `testuser-v'.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
In the `vmailmgr/' configuration directory, there is an entry called `default-username'. If mail to a virtual domain does not match any users or aliases in that domain, it is delivered to the name listed in this configuration item if it exists (which defaults to `+'). To make this deliver to you, simply type:
vaddalias + me |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
System accounts are those listed in `/etc/password' (or `/var/qmail/users/cdb'). The system accounts are accessable, either though SMTP or POP3 or IMAP, as `name@DOMAIN', where DOMAIN is listed in `/var/qmail/control/locals'.
Virtual accounts exist only as an artifact of vmailmgr management. They are accessable as `name@DOMAIN', where DOMAIN is listed in `/var/qmail/control/virtualdomains'.
You cannot mix accounts within a domain between system and virtual domains. If the domain is in `control/locals', all accounts for that domain must be system accounts. If it is in `control/virtualdomains', all accounts for that domain must be virtual accounts. Also, `control/locals' overrides `control/virtualdomains': if the domain is in `locals', `virtualdomains' is ignored.
As an aside, if the domain is neither in `locals' nor in `virtualdomains', qmail will reject incoming messages, and vmailmgr will treat it as local.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
vmailmgrd
.
If vmailmgrd
reports
vmailmgrd: bind: no such file or directorywhen you start it up, it means that can't create its socket file. By default, it will try to create the socket file `/tmp/.vmailmgrd'. You must ensure that `/tmp/' is writable, or that the socket is created in some other place by setting socket-file in the configuration.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
qmail-queue
exited with an error! If qmail reports
deferral: vdeliver: qmail-queue exited with an error!check where your qmail is installed. On Debian systems, you will need to type `ls -s /usr/sbin /var/qmail/bin', since they've installed the qmail binaries into `/usr/sbin'.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
vmailmgrd
fails.
When run by itself, vmailmgrd
will report
Timed out waiting for remote
vmailmgrd
needs to be run from unixserver
, part of the ucspi-unix
package available at
http://untroubled.org/ucspi-unix/.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This is almost certainly a DNS lookup problem. Make sure that DNS lookups aren't timing out, that lookups on all your IP addresses aren't failing, and that you can lookup remote addresses as well.
If you are using tcpserver
for the head end to qmail-pop3d
, then
you may want to add the following 2 switches to the command line: `-R' and
`-H'. The former prevents tcpserver
from attempting to obtain
TCPREMOTEINFO from the remote host. This eliminates an ident
lookup that may be being blocked or silently dropped by a firewall. The latter
prevents tcpserver
from doing a DNS lookup on the remote IP.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
There is a mailing list run by the author. To subscribe, send an e-mail (content and subject line is ignored) to vmailmgr-subscribe@lists.untroubled.org.
Remember that if you have a problem that you want us to diagnose, we need to know the following important details:
qmail-showctl
vmailmgrd
log for the attempt you are
trying to diagnose
vmailmgrd
and qmail-pop3d
was invoked
Please do not contact the author directly with vmailmgr questions.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Yes, they are available through anonymous CVS.
To access the CVS server, set your CVSROOT
to
:pserver:cvs@bruce-guenter.dyndns.org:/CVS, log in with an
empty password, and check out the vmailmgr
module.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Incoming email is first received by the qmail SMTP daemon and
inserted into the qmail queue. Then qmail-send
examines
the email envelope (which details the recipient address or
addresses) to determine how to dispatch the message. It looks up the
domain name of each recipient in
`/var/qmail/control/virtualdomains', and prefixes the user
name with the string that it finds. It then looks up the resulting
user name in the system password table (or in
`/var/qmail/users/cdb' if it exists) to find the base user
name and home directory (which I will call $HOME
). It
then looks for the file `$HOME
/.qmail-VIRTUAL'. If that's
not found, it looks for the file `$HOME
/.qmail-default',
which will contain an instruction to pipe the message to
vdeliver
.
This is where vmailmgr first enters the picture. The virtual user
name is sent to vdeliver
through environment variables. It looks
in the configuration files (in `$HOME
/.vmailmgr' and then
in `/etc/vmailmgr') to determine the location of the
password table, and looks up the virtual user name in the table to
determine delivery instructions. If the name is not found, the
message is bounced and delivery ends. Otherwise, it then looks for
the vdeliver-predeliver
script in the configuration
directories (in reverse order) and executes any that are found. It
then delivers the message to all the listed destinations -- an
optional mailbox directory and zero or more forwarding
addresses. Finally, it looks for the vdeliver-postdeliver
script and executes any that are found.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Outgoing email is not handled by vmailmgr. For details on outgoing email handling, check the qmail documentation.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The socket used by the daemon is a UNIX-domain socket (as opposed to Internet-domain), meaning you need local access on the computer to open up a connection. The path for this socket is run-time configurable.
The daemon forks a new connection for each connection, up to a configurable maximum (at which point it stops listening, IIRC, I should verify this). The idea of threading has been completely discarded to avoid a bug in a command creeping in and making the whole server break.
The protocol spoken over the socket is explicitly bounded to at most 64kB of data, and all data is prefixed by a size. Static-sized buffers are only used with static-sized reads, and therefore can't be overflowed with stack-smashing tricks.
The daemon commands setuid to the appropriate user as soon as the base user has been verified, to avoid doing any more than necessary as root, as well as to avoid the possibility of tricking the daemon into reading a file another user wouldn't normally have access to.
To help avoid DoS on the local computer, a 1-second alarm is set as soon as the connection is received, and is only cleared once all the data has been read. If it takes longer than 1 second to read the data from the socket, the server process exits.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The primary difference between vmailmgr and vpopmail is the use of base users. With vmailmgr there is one base user for each virtual domain. With vpopmail, there is one base user for the entire virtual domain system.
[Top] | [Contents] | [Index] | [ ? ] |
vmailmgrd
.
qmail-queue
exited with an error!
vmailmgrd
fails.
[Top] | [Contents] | [Index] | [ ? ] |
1. Building and Installing
2. Setup and Configuration
3. Usage
4. Troubleshooting
5. Miscellaneous
[Top] | [Contents] | [Index] | [ ? ] |
Button | Name | Go to | From 1.2.3 go to |
---|---|---|---|
[ < ] | Back | previous section in reading order | 1.2.2 |
[ > ] | Forward | next section in reading order | 1.2.4 |
[ << ] | FastBack | previous or up-and-previous section | 1.1 |
[ Up ] | Up | up section | 1.2 |
[ >> ] | FastForward | next or up-and-next section | 1.3 |
[Top] | Top | cover (top) of document | |
[Contents] | Contents | table of contents | |
[Index] | Index | concept index | |
[ ? ] | About | this page |