Skip to content

indimail.7

Manvendra Bhangui edited this page May 31, 2024 · 14 revisions

NAME

IndiMail - A Multi-host distributed Mail Server

DESCRIPTION

IndiMail is an messaging platform built using following packages

  • qmail

  • serialmail

  • qmailanalog

  • dotforward

  • fastforward

  • mess822

  • daemontools

  • ucspi-tcp

  • Courier IMAP/POP3

  • Bogofilter - A Bayesian Spam Filter

  • Fetchmail

other useful software which are needed on a typical email server

  • pack

  • unpack

  • altermime

  • ripmime

  • flash

Apart from providing ESMTP, IMAP, POP3 service, IndiMail provides Management of Virtual domains. IndiMail works on both 32 / 64 bit Unix platforms.

IndiMail consists of two packages.

The indimail-mta package which provides

o MTA, SMTP, QMQP, QMTP o daemontools package o ucspi-tcp package o bogofilter spam filter o fetchmail mail retrieval package

The indimail-mta package can be installed and function without the indimail package. If it finds the libindimail shared library, indimail-mta works seamlessly with virtual domains configured locally or on multiple hosts. This it does by dynamically loading the libindimail.so shared library by reading the control file libindimail or accessing the environment variable VIRTUAL_PKG_LIB.

The indimail package provides

o libindimail shared library o courier-imap for IMAP/POP3 o checkpassword or PAM authentication modules for IMAP/POP3 o virtual domain management. o vdelivermail local delivery agent.

The indimail package requires indimail-mta package to be installed. In fact, if you install indimail package using apt-get, yum/dnf, indimail-mta package will be automatically installed.

IndiMail provides qmail-remote / qmail-local, proxyimap & proxypop3 which are user-location aware (on which server the user's mailbox lies). This gives IndiMail the ability to distribute the users across multiple hosts using standard non-proprietary protocols detailed in standard RFCs. The other use of user-location aware property is to have a single domain consisting of a heterogeneous email server environment (with some users on MS Exchange and some on Lotus Notes some on IndiMail). To distribute mails for users across multiple hosts, IndiMail uses qmail-remote(8). qmail-remote(8) gives the ability to distribute the mails using SMTP or QMTP. You can use the ROUTES environment variable to "smtp" or "qmtp" to choose the protocol. You can have multiple hosts hosting a domain placed geographically anywhere and tied up by IndiMail. The architecture does not force a filesystem architecture like NFS to be used to distribute the users. In other words, IndiMail allows you to extend a domain across multiple servers and hence provide the ability to scale to any number of users. Such a domain which is extended across multiple servers is called a distributed domain. A distributed domain consists of multiple mailstore and one or many MySQL servers. A mailstore is a host which has the user's mail storage in Maildir. The MySQL servers hold user information like path of the Maildir, user privileges, user aliases and forwardings, user's mailstore. The MySQL servers can be present on the mailstores itself or as individual servers or as a single server holding information for all users on all mailstores. The configuration is flexible and is left to the user so that one can optimize on cost or performance.

When an IMAP or POP3 client logs in through proxyimap/proxypop3, the following takes place:

  • The proxy analyzes the login sequence

  • Extracts the user name of the user trying to login

  • Does a lookup query on the local server to find out the server having the mailbox of the user attempting the login. This lookup service (named inlookup(8)) runs on all mailbox servers and accepts requests through a well defined FIFO.

indimail-mta uses a highly modified qmail and provides all features needed in a modern MTA. However, all features have been added by re-using the functions/libraries provide by stock qmail (stralloc, substdio, alloc, str, env, etc). Detailed feature list of IndiMail is provided on the website http://www.indimail.org

IndiMail has two databases. For most purposes, IndiMail can function with just the local database. For a distributed environment, IndiMail requires two databases.

local database - Contains all user information, attributes

[step]
central database - Used only when configured as a distributed domain. This database is refered to as 'clusterinfo'.

For a non-distributed architecture, you need a local MySQL database. To connect to this MySQL database, you need to have a control file host.mysql. This control file contains the IP address or hostname of the MySQL database corresponding to the local database. If the control file host.mysql is missing, programs will use localhost to connect to MySQL. One can also use host:user:password:socket/port[:ssl] format for host.mysql.

The local database consists of the following tables

indimail

[step]
indibak

[step]
valias

[step]
vlimits

[step]
userquota

[step]
relay

[step]
lastauth

[step]
atrn_map

[step]
dir_control

[step]
fstab

[step]
ip_alias_map

[step]
vfilter

[step]
vlog

[step]
bulkmail

A distributed domain in IndiMail is achieved by having a central MySQL database called clusterinfo. clusterinfo stores information about the user's storage server (mailstore) and each mailstore's individual local MySQL database's connection parameters (host, user, password, socket or port, ssl/nossl). This database is also referred to as the central database. It consists of the following tables

hostcntrl

[step]
host_table

[step]
dbinfo

[step]
smtp_port

[step]
mgmtaccess

[step]
vpriv

The table hostcntrl has the fields user, domain and hostid. hostid is a unique identifier which needs to be assigned to every server on which email accounts need to be created. These servers are also called mailstores. The program hostcntrl(8) can be used to add, modify, delete entries to the table hostcntrl. The program vadduser(1) also adds user entries to this table. Each hostid needs to be mapped to an IP address. This is maintained in the table host_table. A program called vhostid(8) can be used to add, modify or delete entries in host_table.

To be able to access the central database, IndiMail programs need the following control files in the directory /etc/indimail/control

host.master

[step]
host.cntrl

These control file contains the IP address or hostname of the MySQL database corresponding to the central database. You can also use host:user:password:socket/port[:ssl] format for these control files. If you plan to have a master-slave MySQL architecture, you can have entry in host.master pointing to the MySQL master database and have entry in host.cntrl pointing to the MySQL slave database. With these control files, all indimail programs ensure that all writes go to the master database and reads happen only from the slave database. The control files host.master, host.cntrl can be overriden by the environment variables MASTER_HOST and CNTRL_HOST. One can also give host:user:password:mysql_socket/port[:ssl] as the format for host.master and host.cntrl.

IndiMail uses gethostid(3) and getaddrinfo(3) to figure out its identity. getaddrinfo(3) requires your hosts address to be either resolved by dns or be present in hosts(5) /etc/hosts. You can bypass gethostid(3) and getaddrifno(3) by have your hostid in /etc/indimail/control/hostid and your IP address in /etc/indimail/control/localiphost.

In a distributed setup, you can have multiple servers with each server having its own set of local users. The information for these users are stored in a MySQL database known as the local database. You can have multiple local databases with each database serving one email server. You can also club user information for multiple email servers in a single MySQL local database. This flexibility helps IndiMail achieve scalability. So apart from the user's location which is maintained in the central database, other user attributes like home directory, gecos, quota, access rights are maintained in another MySQL database called the local database.

Access to the individual local database by indimail programs is made easy by, having the parameters needed to connect to each of the MySQL local datbase, in a table called dbinfo, on the central database. The same information can be maintained in a control file /etc/indimail/control/mcdinfo. The file mcdinfo allows one to maintain and sync information about each and every mailstore on the dbinfo table. The updation depends on the timestamp of the mcdinfo file and dbinfo table. The moment mcdinfo is updated, the same information gets updated in the dbinfo table. The moment dbinfo gets updated, the file mcdinfo on all other mailstore (older than the dbinfo table) gets updated. The entries in dbinfo table / mcdinfo file can be seen by running the dbinfo(8) program. Whenever a new mailstore is added/removed, the entry for the mailstore and the corresponding MySQL local database needs to be added/removed in the dbinfo table or mcdinfo file. In short, the entries in the dbinfo table and the mcdinfo control file on all servers are kept in sync.

Depending on how IndiMail was configured during the build process, it can dynamically load the libmysqlclient library using dlopen(3), by reading the control file mysql_lib or the environment variable MYSQL_LIB environment variable. The advantage of such a build is the ability to use either MariaDB or MySQL client libraries as the library is not linked during the linking stage.

It may be noted that the connection to MySQL can be fine tuned by editing the file /etc/indimail/indimail.cnf. This file has [client] section that all indimail programs use. It also has [mysqld] section which is used my mysqld(8), if it is managed by supervise(8). You can also change the behaviour of the MySQL connections by setting enviroment variables. Please see the section on 'Environment Variables' to understand that.

In case you do not require a multi-host setup, IndiMail does not require central database. Programs just need to connect to the local database which can be configured by having the control file /etc/indimail/control/host.mysql.

LOCAL DATABASE

The local database consists of the following tables

indimail

[step]
indibak

[step]
valias

[step]
vlimits

[step]
userquota

[step]
relay

[step]
lastauth

[step]
atrn_map

[step]
dir_control

[step]
fstab

[step]
ip_alias_map

[step]
vfilter

[step]
vlog

[step]
bulkmail

The main local table is the indimail table. It has the following columns

pw_name - This has the username

[step]
pw_domain - This has the domain name

[step]
pw_passwd - This has an encryted password

[step]
pw_uid

[step]
pw_gid

[step]
pw_gecos

[step]
pw_dir

[step]
pw_shell

[step]
scram

[step]
salted

[step]
timestamp

Virtual Domains

IndiMail has an idea of email domains that are "local" and "virtual". Local domains are ones which primarily match against /etc/passwd. Virtual domains match against domains listed in the control file /etc/indimail/control/virtualdomains. IndiMail makes use of the /var/indimail/users/assign file and virtualdomains file. The users/assign file gets compiled into a users/cdb file. It is a hashed database to speed searches for patterns. If a pattern is matched then IndiMail delivers the email to the directory defined in the file using the uid and gid which is also defined. IndiMail makes use of this method to deliver all virtual domain email as the single uid/gid indimail/indimail. It also uses it to take delivery instructions from /var/indimail/domains/<virtualdomain>/.qmail-default file. Once qmail-local gets the information from the users/assign file it performs standard .qmail file processing in the directory. Normal .qmail-<user> files can be used for forwarding, aliases or invoking programs such as ezmlm. If no matches are found qmail-local looks for a .qmail-default file. This is the last stage in qmail-local's delivery mechanism. qmail-local uses this file to invoke the vdelivermail program. This program takes two parameters, the first is not used (it is there for backward compatibility). The second parameter is the default delivery if a virtual domain user can not be found. Basically, it can be one of the following

Full path to a indimail user directory

[step]
email address to forward email to

[step]
the string bounce-no-mailbox to bounce the email back to the sender.

[step]
Address in SMTPROUTE format to which vdelivermail should use SMTP to deliver the mail. e.g.

indimail.org:192.168.1.55:25

where indimail.org is the local domain, 192.168.1.55 is the IP address of an SMTP server for indimail.org and 25 is the SMTP port.

Directory structure

IndiMail gets it's own home directory. A typical IndiMail installation will have the following directories in the directory /var/indimail.

Directory Description
alias System aliases postmaster, mailer-daemon, root
domains Virtual domain directories, each having .qmail-default file
mysqldb Local MySQL database (MySQL database in data, logs in logs)
autoturn Domains supporting ETRN, AUTOTURN support
qscanq Directory for virus scanning if qscanq is used
clamd clamd virus signature database

Binaries, shared libraries, documentation, development files, etc lie in the following directores

Directory Description
/usr/bin All user binaries
/usr/sbin Binaries required by administrators
/usr/lib64 Shared/Development Libraries (lib for 32 bit)
/usr/include Include files for IndiMail API
/usr/lib/indimail/plugins Plugins for qmail-queue, tcpserver, etc
/usr/lib/indimail/modules Loadable modules for flash menu system
/usr/libexec/indimail/imapmodules Authentication modules for courier-imap
/usr/share/indimail/doc Documentation
/usr/share/indimail/boot Startup files
/usr/share/man Man pages
/etc/indimail/users assign, cdb file
/etc/indimail/control Most of IndiMail's configuration file lie here
/etc/indimail bogofilter.cf, spam wordlist, tcp.[smtp,imap,pop3].cdb, etc
/etc/indimail/certs SSL/TLS Certificates

Apart from the above, IndiMail has all logs in the directory /var/log/svc. These contain both informational and error logs for services configured in /service. See the SECTION STARTUP for more details.

Directory Description
clamd clamd virus scanner log
freshclam clamd signature update log
qscanq qscanq virus scanner log
smtpd.25 Log for qmail-smtpd running on port 25
smtpd.587 Log for qmail-smtpd Message Submission Port rfc-2476(5)
smtpd.366 Log for qmail-smtpd ODMR port rfc-2645(5).
smtpd.465 Log for qmail-smtpd on SMTPS port
qmtpd.209 Log for qmail-qmtpd on QMTP port
qmqpd.628 Log for qmail-qmqpd on QMQP port
deliver.25 qmail-send deliver log
slowq slowq-send deliver log
fetchmail fetchmail log
greylist.1999 greylist daemon log
imapd.143 Log for imapd running on port 143
imapd-ssl.993 Log for imapd running on port 993 (SSL)
proxyIMAP.4143 Log for IMAP proxy running on port 4143
proxyIMAP.9143 Log for IMAP proxy running on port 9143 (SSL)
pop3d.110 Log for pop3d running on port 110
pop3d-ssl.995 Log for pop3d running on port 995 (SSL)
proxyPOP3.4110 Log for POP3 proxy running on port 4110
proxyPOP3.9110 Log for POP3 proxy running on port 9110 (SSL)
indisrvr.4000 Log for IndiMail administration daemon
inlookup.infifo Log for inlookup server
pwdlookup Log for NSS daemon for password lookups
poppass.106 Log for poppassd protocol daemon
mysql.3306 Log for MySQL service
qmail-logfifo Log for clients using fifologger
svscan Log for svscan service
daned.1998 service for getting TLSA records
udplogger.3000 Log for udplogger service
mrtg MRTG service
.svscan svscan service and local /etc/resolv.conf namespace
resolvconf Provide private local namespace for /etc/resolv.conf
dnscache DNS cache service

Virtual Domain Directory Structure Layout

IndiMail uses an adaptive directory structure based on a table dir-control which is automatically managed by the core programs vadduser(1) and vdeluser. The basic idea is to break up the user Maildir directories across multiple directories and sub directories so that there are never more than 100 user directories in a single directory.

In a single file system, the default directory setup allows for 62 directories in 3 levels and 100 user directories per directory. The total number of user directories is equal to (62 * 100) + (62 * 62 * 100) + (62 * 62 * 62 * 100) = over 24 million directories per filesystem. This should be more than sufficient for any site and probably goes beyond the technology of directory structures.

If you are going to be storing large numbers of user directories, make sure you set your file system to have a higher than normal percentage of inodes.

IndiMail will automatically create these directories and sub directories as needed and populate each directory with up to 100 user accounts. As soon as a directory reaches 100 users it will create the next directory or sub directory and store the new users directory there.

You can use the vreorg(8) program to recreate the dir-control table.

Environment Variables

Some IndiMail programs set or use environment variables. The following table lists these variables and describes their use.

EnvironmentVariable Program Set/Used Purpose
QMAILQUEUE qmail-smtpd used Program to be called instead
qmail-inject qmail-queue
new-inject
condredirect
dot-forward
fastforward
filterto
forward
maildirserial
ofmipd
qmail-local
qmail-qmtpd
qmail-qmqpd
qmail-send
qreceipt
replier
rrforward
_
QUEUEPROG qmail-multi used Program to be called to queue message
default is qmail-queue. You can define
this to be qmail-qmqpc in order to send
messages to a to a QMQP server
_
CONTROLDIR qmail-smtpd used The directory containing control files.
qmail-remote If not defined /etc/indimail/control
spawn-filter is used
qmail-local
ipmeprint
qmail-newmrh
qmail-send
qmail-showctl
qmail-spamdb
todo-proc
qmail-command
_
QUEUEDIR qmail-queue used queue path from where to pick up mails
qmail-clean for local and remote deliveries
qmail-daemon
qmail-rm
qmail-send
qmail-tcpok
qmail-tcpto
todo-proc
spawn-filter
qmail-lspawn
qmail-rspawn
_
ENVRULES qmail-smtpd used Any environment variable(s) can be set
spawn-filter based on senders/recipients matching a
qmail-inject given value.
smtp
REQUIREAUTH, QREGEX, ENFORCE_FQDN_HELO,
DATABYTES, BADHELOCHECK, BADHELO,
NODNSCHECK, VIRUSCHECK, SIGNATURES,
BODYCHECK, BADMAILFROM, DATABYTES_NOTIFY,
BADMAILFROMPATTERNS, BOUNCEMAIL,
CUGMAIL, MASQUERADE, DEFAULT_DOMAIN,
BADRCPTTO, BADRCPTPATTERNS, TARPITCOUNT,
TARPITDELAY, MAXRECIPIENTS, AUTH_ALL,
CHECKRELAY, CONTROLDIR, ANTISPOOFING,
CHECKRECIPIENT SPAMFILTER, LOGFILTER,
SPAMFILTERARGS, SPAMEXITCODE,
REJECTSPAM, SPAMREDIRECT, SPAMIGNORE,
SPAMIGNOREPATTERNS, FILTERARGS,
QMAILQUEUE, QMAILREMOTE, QMAILLOCAL,
RELAYCLIENT, QQEH, BADEXT,
BADEXTPATTERNS, ACCESSLIST, QHPSI,
REJECTSPAM, REJECTVIRUS, FORCE_TLS
spawn-filter SPAMFILTER, LOGFILTER, SPAMFILTERARGS,
FILTERARGS, SPAMEXITCODE, REJECTSPAM,
SPAMREDIRECT, SPAMIGNORE,
SPAMIGNOREPATTERNS, QREGEX, DATABYTES,
SMTPROUTE, ONSUCCESS_REMOTE
ONFAILURE_REMOTE, ONTEMPORARY_REMOTE
_
QREGEX qmail-smtpd used If set, regex is used to evaluate
spawn-filter patterns in
1.badhelo
2.blackholedsender
3.badmailfrom
4.badrcptto
5.spamignore
6.relaymailfrom
7.authdomains
8.chkrcptdomains
9.accesslist
_
EXTRAQUEUE qmail-queue used Extra recipient to be added to the
recipient list before queueing the mail.
QHPSI qmail-queue used If set enables the Qmail High
Performance Scanner Interface. This
should be set to the path of the virus
scanner. It can also be set to a list of
space separted plugins starting with the
keyword plugin:
QHPSIRC qmail-queue used To specify the return code of the virus
scanner in case of an infection;
default is 1.
QHPSIMINSIZE qmail-queue used The minimal size of the message to
invoke the virus scanner; default is 0.
A typical choice would be
QHPSIMISIZE=10000 (~10k).
QHPSIMAXSIZE qmail-queue used The maximal size of the message to
invoke the virus scanner; default is
unrestricted. A typical choice would be
QHPPIMAXSIZE=1000000.
QUARANTINE qmail-queue used If set, all mails get redirected to the
id defined by the environment variable
QHPSIFORWARD qmail-queue used If set, virus infected mails get
redirectored to the id defined by the
environment variable
REJECTVIRUS qmail-queue used Sets action to be carried out on
detection of virus
0 Accept infected mails
1 Bounce the mail.
2 Blackhole the mail.
NULLQUEUE qmail-queue used If set, mail transaction is sent to
/dev/null without returning an error
(blackholing)
MAILARCHIVE qmail-queue used mail archival rules based on sender
or recipient addresses
ENVHEADERS qmail-queue used Contains list of email headers that
should be available as environment
variables in qmail-local and
qmail-remote
LOGHEADERS qmail-queue used Name of control file containing list
of email headers whose value along
with header name should be written
to the file descriptor defined by the
LOGHEADERFD env variable
LOGHEADERFD qmail-queue used This defines the file descriptor to be
used for writing when logheaders control
file or LOGHEADERS environment variable
is used.
REMOVEHEADERS qmail-queue used Name of control file containing a list
of email headers that should be removed
before putting into the queue. If not
supplied, qmail-queue uses the control
file removeheaders.
QQEH qmail-queue used qmail-queue passes this variable into
qmail-local the queue. qmail-local and qmail-remote
forward will prepend it to the headers of email
condredirect when it is delivered
PLUGINDIR qmail-queue used Directory in /var/indimail containing
qmail-send dynamically loadable plugins
qmail-smtpd
QUEUE_PLUGIN_SYMB qmail-queue used The function to be called when a
dynamic virus scanner plugin is loaded
default is 'virruscan'
START_PLUGIN qmail-send used List of startup plugins to be loaded
default is qmail-send.so
START_PLUGIN_SYMB qmail-send used function to be executed from the loaded
plugins. Default is 'startup'
SMTP_PLUGIN qmail-smtpd used SMTP plugin to be loaded. Default is
smtpd-plugin.so
SMTP_PLUGIN_SYMB qmail-smtpd used The function to be called after loading
SMTP plugins. Default is 'plugin_init'
DISABLE_PLUGIN qmail-smtpd used If set, loading of SMTP plugin is
disabled
_
PLUGINn tcpserver used Here n is 0, 1, 2, ...
PLUGINn_dir You can preload shared objects in tcpserver
PLUGINn_init by using PLUGINn variable. PLUGIN_DIR,
and PLUGIN_init variable can be used
to modify the cwd and a function to be
called for initializatoin purposes
Note: This feature should be used
when you specifiy this plugins instead
of executables on the command line
_
TRIVIAL_PASSWORDS iwebadmin used If set, allows use of unsafe plain text
passwords
DISABLE_CRYPT vchkpass used Disable crypt method in AUTH LOGIN, PLAIN
qmail-smtpd Disables both AUTH LOGIN and PLAIN
authindi
ENABLE_CRAM vchkpass used Allow crypted password field to be used as
password for CRAM authentcation methods
NATIVE_PASSWORD vchkpass used Sets authentication for dovecot checkpassword
DISABLE_AUTH_LOGIN qmail-smtpd Disable AUTH LOGIN method
qmail-remote
DISABLE_AUTH_PLAIN qmail-smtpd Disable AUTH PLAIN method
qmail-remote
DISABLE_CRAM_MD5 qmail-smtpd Disable AUTH CRAM-MD5 method
qmail-remote
vchkpass
authindi
proxyimap
proxyimap
vsetpass
systpass
DISABLE_CRAM_SHA1 qmail-smtpd Disable AUTH CRAM-SHA1 method
qmail-remote
vchkpass
authindi
proxyimap
proxyimap
vsetpass
systpass
DISABLE_CRAM_SHA256 qmail-smtpd Disable AUTH CRAM-SHA256 method
qmail-remote
vchkpass
authindi
proxyimap
proxyimap
vsetpass
systpass
DISABLE_CRAM_RIPEMD qmail-smtpd Disable AUTH CRAM-RIPEMD method
qmail-remote
vchkpass
authindi
proxyimap
proxyimap
vsetpass
systpass
DISABLE_DIGEST_MD5 qmail-smtpd Disable AUTH DIGEST-MD5 method
qmail-remote
vchkpass
authindi
proxyimap
proxyimap
vsetpass
systpass
_
DOMAINQUEUE qmail-smtpd used Define domain specific queues
_
QUEUE_COUNT qmail-multi used No of queues setup
QUEUE_START qmail-multi used Number denoting the first queue
QUEUEDIR qmail-multi set queue path where mails are queued
MIN_FREE qmail-multi used Minimum free disk space allowed on the
QUEUE filesystem after which mails get
rejected with a temporary error. By
setting this the IndiMail system becomes
crashproof as well as bounceproof
SPAMFILTER qmail-multi used Filter program to filter mail before
spawn-filter passing it to qmail-queue
SPAMFILTERARGS qmail-multi used Arguments to be passed to the spam
spawn-filter filter program.
SPAMEXITCODE qmail-multi used Exit code of the spamfilter which
spawn-filter denotes a spam mail.
REJECTSPAM qmail-multi used If set, and if the filter program
spawn-filter returns an exit code matching the value
of SPAMEXITCODE, the mail is permanently
rejected
SPAMIGNORE qmail-smtpd used ignore users listed in this control file
spawn-filter
chowkidar
SPAMIGNOREPATTERNS qmail-smtpd used same as above, except that the user list
spawn-filter can have wildcards.
chowkidar
SPAMREDIRECT qmail-multi used Redirect SPAM tagged mails to the user
spawn-filter specified by this environment variable
FILTERARGS qmail-multi used Arguments with with Filter program will
spawn-filter be called
LOGFILTER qmail-smtpd used If set, any programs called using QMAILQUEUE
spawn-filter or FILTERARGS env variable can use
the file descriptor 255 where it can log
additonal status messages to be logged
in the qmail-smtpd's log file. This
should be set to a filename which will
be used by the qmail-spamlog service.
MAKE_SEEKABLE qmail-multi used If set, the pipe used by various
spawn-filter programs to communicate is made
vdelivermail seekable. This improves the performance
autoresponder of filters.
ismaildup
_
QMAILLOCAL spawn-filter used The mda to call for local deliveries
(default qmail-local if not defined)
QMAILREMOTE spawn-filter used The smtp client to call for remote
deliveries (default qmail-remote if
not defined)
RATELIMIT_DIR spawn-filter used Directory for rate limit definitions
_
ONSUCCESS_REMOTE qmail-remote used if set, program defined by
ONFAILURE_REMOTE ONSUCCESS_REMOTE gets called on
ONTEMPORARY_REMOTE successful remote deliveries. similarly
program defined by ONFAILURE_REMOTE gets
called on failed remote deliveries and
program defined by ONTEMPORARY_REMOTE
gets called on deferrals.
Arguments passed to this program are same
as that for qmail-remote. These programs
runs as uid qmailr.
_
SMTPTEXT qmail-remote set Contains the conversation during SMTP or
QMTPTEXT QMTP transaction with a remote SMTP/QMTP
server.
_
SMTPCODE qmail-remote set Contains the 3 digit code returned by
QMTPCODE remote SMTP/QMTP server during an
SMTP/QMTP transaction.
_
OUTGOINGIP qmail-remote used set the IP for outoing connections
_
DEFAULT qmail-command set Portion of address matching "-default"
in a .qmail file name.
DTLINE Delivered-To header field
EXT The address extension
EXT2 Portion of EXT following first dash
EXT3 Portion of EXT following second dash
EXT4 Portion of EXT following third dash
HOST The domain part of the recipient address
HOST2 Portion of HOST preceding last dot.
HOST3 Portion of HOST preceding second-to-last
dot
HOST4 Portion of HOST preceding third-to-last
dot
HOME The user's home directory
LOCAL The local part of the recipient address
NEWSENDER Forwarding sender address
(see "man dot-qmail")
RECIPIENT Envelope recipient address
RPLINE Return-Path header field
SENDER Envelope sender address
UFLINE UUCP-style "From" line
USER The current user
_
LOGNAME qmail-inject used User name in From header field
MAILHOST Host name in From header field
MAILNAME Personal name in From header field
MAILUSER User name in From header field
NAME Personal name in From header field
QMAILDEFAULTDOMAIN Overrides control/defaultdomain
QMAILDEFAULTHOST Overrides control/defaulthost
QMAILHOST Host name in From header field
QMAILIDHOST Overrides control/idhost
QMAILINJECT Specify various options (see next
table)
QMAILMFTFILE File containing list of mailing list
addresses for Mail-Followup-To
generation
QMAILNAME Personal name in From header field
QMAILPLUSDOMAIN Overrides control/plusdomain
QMAILSHOST Host name in envelope sender address
QMAILSUSER User name in envelope sender address
QMAILUSER User name in From header field
USER User name in From header field
_
DKQUEUE qmail-dk used Specifies the path to the qmail-queue
executable. If this is not set, qmail-dk
will invoke qmail-multi
DKSIGN qmail-dk used If set to the path of a private key,
qmail-dk signs the message using the
private key. This variable should be set
when a host is authorized to relay.
DKVERIFY qmail-dk used If set, messages are verified and
qmail-dk will insert the
DomainKey-Status header. The behaviour
depends on the set of letters to which
DKVERIFY is set. A conservative set of
letters is DEGIJKfh
DKSIGNOPTIONS qmail-dk used Options to use for dk signing.
dk-filter
_
DKIMQUEUE qmail-dkim used Specifies the path to the qmail-queue
executable. If this is not set,
qmail-dkim will invoke qmail-multi
DKIMSIGN qmail-dkim used If set to the path of a private key,
qmail-dkim signs the message using the
private key. This variable should be set
when a host is authorized to relay.
DKIMVERIFY qmail-dkim used If set, messages are verified and
qmail-dkim will insert the DKIM-Status
header.
DKIMSIGNOPTIONS qmail-dkim used Options to use for dkim signing
dk-filter
SIGN_PRACTICE qmail-dkim used For using SSP or ADSP as the signing
practice
_
DATABYTES qmail-smtpd used override control/databytes
qmail-inject used override control/databytes
sendmail used override control/databytes
spawn-filter used override control/databytes
DATABYTES_NOTIFY qmail-smtpd used notification is sent to recipient in
databyte limit gets exceeded.
_
BOUNCEPROCESSOR qmail-send used External bounceprocess to call for
handling bounces.
BOUNCEQUEUE qmail-send Queue to be used for injecting bounces
TODO_INTERVAL qmail-send To set the minumum time interval between
todo-proc two todo runs. By increasing this you
can reduce the disk IO. But there is a
latency on mail delivery times
_
TMPDIR qmail-multi used Sets directory to use for temporary
qmail-qfilter files. Default is /tmp
qmail-smtpd
spawn-filter
vbulletin
PROTO sendmail used Used internally by sendmail -bs flag.
_
RELAYCLIENT qmail-smtpd used Ignore control/rcpthosts and append
value to recipient address. This is used
for selective relaying to domains not
listed in rcpthosts.
AUTH_ALL If set, sending mail to all domains will
require authentication (regardless of
whether the domain is listed in
rcpthosts).
REQUIREAUTH If set, 'mail from' is not accepted
without prior authenticated SMTP.
AUTH_DOMAINS List of comma separated domains whose
senders will allways require
authentication to send out mails
(regardless of whether the domain is
listed in rcpthosts). Multiple domains
can also be set with ':' or newline as
the delimiter. e.g.
AUTH_DOMAINS=`cat ~indimail/control/authdomains`
where authdomains is a file containing
list of domains one per line.
CHECKRELAY Relay table in MySQL is checked for
'return path' before sending mails to
outside domains. Allows users to relay
mails to foreign domains.
CHECKRECIPIENT Used for checking the status of the
user. The presence of the user can be
checked in MySQL (indimail) or
indimail~/users/recipients.cdb. If the
control file chkrcptdomains is present,
then only domains listed in
chkrcptdomainare checked. If
chkrcptdomain is absent, all domains
are checked. The value of CHECKRECIPIENT
can be one of the 3 values
1.Check MySQL
2.Check both MySQL and recipients.cdb
3.Check recipients.cdb
MASQUERADE Allows the authenticated userid in AUTH
SMTP to be different from the
CUGMAIL Return-Path. Turns of relaying to
ANTISPOOFING foreign domains. Turns of spoofing of
Return-Path for local users.
MAXRECIPIENTS Maximum number of recipients allowed in
a single SMTP session.
TARPITCOUNT Maximum number of recipients allowed in
a single SMTP session after which an
artificial delay is introduced.
TARPITDELAY No of seconds of delay to be imposed on
the SMTP session when number of
recipients in a single SMTP session
exceeds the value of TARPITCOUNT
BADHELOCHECK Enables checking of badhelo control
file and validity of the HELO/EHLO
string as a valid domain.
BADHELO Use this as the filename for bad helo
REGEX strings.
ENFORCE_FQDN_HELO Forces argument to helo/ehlo command to
be a fully qualified domain name.
BOUNCEMAIL When this is set, SMTP server issues
this as a message to the client with a
permanent error.
WARNMAIL Enables warn_mail function.
WARNMAIL X-Spam-Warning: lines inserted in
.. WARNMAIL9 message if these are set.
SHUTDOWN Issues temporary errors for all commands
BADMAILFROM Override the default name for the
'badmailfrom' control file
BADMAILPATTERNS Override the default name for the
'badmailpatterns' control file
BADRCPTTO Override the default name for the
'badrcptto' control file
BADRCPTPATTERNS Override the default name for the
'badrcptpatterns' control file
BODYCHECK Enables content filtering during a SMTP
session. The value of BODYCHECK
environment variable specifies the name
of the control file containing regex
patterns to be matched in an email.
VIRUSCHECK Enables in-built virus scanning engine
in qmail-smtpd. Virus patterns can be
maintained in the control file
'signatures'. If set to a value > 1,
it can be used to call an external
scan engine for checking viruses and
bad attachments
1.Internal scanner
2.Internal+External+attachment scan.
3.Internal+attachment scan
4.External+attachment scan
5.External scanner
6.Attachment scan
SIGNATURES Override the name of the default virus
pattern control file 'signatures'
HOSTACCESS Defines from which IP address or set of
IP addresses can mail from a particular
domain originate.
PARANOID If set, then only pairs having a match
in the 'hostaccess' control file are
granted access
DOMAIN_MASQUERADE If set, all IP address having a match in
the 'hostaccess' control file are
granted access
_
STARTTLS qmail-smtpd used Enables the ESMTP STARTTLS extension
SMTPS Turns on the deprecated SMTPS protocol
on port 465
SERVERCERT File having SSL certificate to be
presented to clients in TLS encrypted
sessions. This overrides the control
file servercert.pem
CLIENTCA A file having list of Certifying
Authority (CA) certificates that are
used to verify the client-presented
certficates during a TLS-encrypted
session. This overrides the control
file clientca.pem
CLIENTCRL File having a list of Revocation Lists
(CRLs). This overrides the control file
clientcrl.pem
TLSCIPHERS A set of OpenSSL cipher strings.
Multiple ciphers contained in a string
should be separated by a colon.
FORCE_TLS used If set enforces use of STARTTLS during
SMTP authentication.
SECUREAUTH used If set disables use of AUTH PLAIN and
LOGIN during SMTP authentication.
CERTDIR used Directory where all certs are located
_
CLIENTCERT qmail-remote used File having SSL certificate to be
presented to clients in TLS encrypted
sessions. This overrides the control
file clientcert.pem
CERTDIR used Directory where all certs are located
_
NODNSCHECK qmail-smtpd used If set, the domain part of an email
address is not verified.
SPFBEHAVIOUR SPF check gets enabled
0.SPF Disabled
1.Annotate with Received-SPF fields
2.Producte temporary failures on DNS
lookup problems
3.Reject if SPF record says fail
4.Strict mode. Reject for 'fail'
and 'softfail'
5.Reject for 'fail', 'softfail'
and 'neutral'
6.Reject if no SPF record is
available or for syntax error
OPENRELAY If set, qmail-smtpd rejects incoming
connection with (553 code) the message
No mail accepted from an open relay
GREYIP If set, will send a UDP packet to
greydaemon for greylisting
GREETDELAY Time in seconds by which qmail-smtpd
delays the 220 ESMTP welcome prompt.
This overrides the greetdelay control
file.
_
SCANCMD qscanq used The virus scanner to run for scanning
emails. A '%s' in SCANCMD will get
replaced with the filename in the mess
directory (file containing the entire
content of the email)
BADEXT qscanq-stdin used Name of control file specifying list of
prohibited filename extensions in mail.
BADEXTPATTERNS qscanq-stdin used Name of control file specifying regex
patterns of list of prohibited filename
extensions in mail
SCANDIR qscanq used Name of directory where qscanq will
create temporary work directory for
extracting mime from emails.
SCANINTERVAL svscan used Time interval in which svscan should do
a directory scan to look for new
services. If set to 0, scanning is
disabled. However the scan can be
manually triggered by sending svscan a
HUP signal. If not set, the default
scan interval is 5 seconds.
_
USE_FSYNC qmail-queue used Causes fsync() to be used for all
qmail-local open files. This makes IndiMail crash
qmail-send proof with a minor performance penalty
todo-proc
USE_SYNCDIR qmail-queue used Emulates BSD style synchronous
qmail-local directories.
qmail-send
todo-proc
ROUTES qmail-rspawn used If defined as static, control/smtproutes
or control/qmtproutes is used. Else hostcntrl
is used to set SMTPROUTE / QMTPROUTE
variables depending on whether
the ROUTES is defined as "smtp" or "qmtp"
SMTPROUTE qmail-rspawn set set to user's mailstore ip if ROUTES is
defined as "smtp"
QMTPROUTE qmail-rspawn set set to user's mailstore ip if ROUTES is
defined as "qmtp"
SMTPROUTE qmail-remote used overrides control/smtproutes
QMTPROUTE qmail-remote used overrides control/qmtproutes
AUTH_SMTP qmail-remote used Uses Authenticated SMTP on the remote
SMTP server to push out mails. The
username and password must be specified
in smtproutes separated by spaces. e.g.
test.com:25 postmaster@test.com pass
DOMAINBINDINGS qmail-remote Name to be used for the domainbindings
control file.
AUTHSELF qmail-lspawn used Causes PWSTRUCT environment variable to
be set. This eliminates the need for
vdelivermail to make connection to the
database (MySQL). On a high volume
server, this can significantly improve
the database performance.
PWSTRUCT qmail-lspawn set Has /etc/passwd format. Set by
qmail-lspawn after doing vauth_getpw()
_
PWSTRUCT vdelivermail used Uses the environment variable to fetch
vfilter the passwd structure rather than from
the database.
MDA vfilter used Executable to be called for delivering
the mail. By default, vfilter calls
vdelivermail. Command line arguments
can also be specified in the environment
variable
MAILCOUNT_LIMIT vdelivermail used Max deliveries permitted for a user in
a day.
MAILSIZE_LIMIT Max total size of mail delivery/day for
a user.
OVERQUOTA_MAILSIZE Maximum allowed size of mail when user
is over quota
ELIMINATE_DUPS vdelivermail used If set, duplicate emails are discarded
ismaildup
DUPLICATE_INTERVAL vdelivermail used Interval within which same email will
ismaildup be discarded as duplicate
HOLDOVERQUOTA If set, vdelivermail will defer mails
when user runs out of quota. The command
defined by OVERQUOTA_CMD will be run.
However, BOUNCE_FLAG and lastdeliver
table will not be updated
MAILDIRFOLDER Alternate Folder to deliver incoming
mail.
MTA Default MTA to use for injecting mails
(currently qmail-inject or postfix)
FAST_QUOTA vdelivermail used If set, maildirsize is not updated when
reading quota
MAILDIRSIZE_MAX_AGE The max age of maildirsize, above which
maildirsize entres will be collapsed to
reduce size
MAILDIRSIZE_MAX_SIZE Max size of maildirsize, above which
maildirsize entries will be collapsed to
reduce size
_
OVERQUOTA_CMD vdelivermail used Command to be run when user becomes
authindi overquota. Triggered during mail
delivery or during IMAP/POP3
authentication.
_
INCLUDE_TRASH vdelivermail used If set, vdelivermail will include trash
in quota calculations.
_
REAL_DOMAINS qmail-rspawn used List of real domains separated by the
qmail-lspawn ':' character. e.g.
InLookup indimail.org:yahoo.com
vfilter
vdelivermail
ALIAS_DOMAINS List of aliasdomain-realdomain pair
separated by the ':' character. e.g.
indimail.in,indimail.org:yahoo.co.in,yahoo.com
_
POSTAUTH authindi used Command to be run post successful
systpass authentication. If return value is 2 or
vchkpass 3, the homedir gets set to the
proxyimap environment variable TMP_MAILDIR if
proxypop3 defined else it gets set to the user's home
directory.
If the return value is 3, authindi will
additionally display a message defined
by the environment variable MSG_ONERROR
(if defined) and will exit if the
environment variable EXIT_ONERROR is
defined.
TMP_MAILDIR authindi used Home directory set for imap/pop3 if the
proxyimap command defined by POSTAUTH exits with 2
proxypop3 or 3
MSG_ONERROR Message displayed to IMAP/POP3 clients
when script defined by POSTAUTH exits
with 2 or 3
EXIT_ONERROR If the command defined by POSTAUTH
environment variable exits with 2 or 3
and this environment variable is
defined, IMAP/POP3 client will exit
preventing the user from accessing
mailbox
AUTHSERVICE authindi set imap, pop3 or webmail
PROTOCOL imaplogin set Set to IMAP or SMAP1 by imaplogin
pop3login Set to POP3 by pop3login
_
DESTPORT proxyimap used Used to determine whether the
proxypop3 destination port is imap or pop3. The
authindi format is either imap:port_num or
pop3:port_num, where port_num is a port
on which either IMAP or POP3 server is
listening.
NOLASTAUTH If set, lastauth insert is disabled
during authentication.
MIGRATEUSER Program to be run once (first time) when
the user logs in successfully
(successful authentication).
MIGRATEFLAG Zero bytes file created in User's
Maildir to figure out if the migration
program defined by environment variable
MIGRATEUSER has been run.
ACTIVATEMAIL Specifies the default name of the
activation mail in the bulk mail
directory.
WELCOMEMAIL Specifies the default name of the
welcome mail in the bulk mail directory.
BULK_MAILDIR Constitutes part of the bulk mail
directory. e.g. for indimail.org the bulk
mail directory will be
/var/indimail/domains/indimail.org/$BULK_MAILDIR
BULK_HOST Environment variables to be set when the
'bulkmail' table lies on a remote MySQL
host.
BULK_VPORT Port for the 'bulkmail' MySQL
BULK_SOCKET Socket for the 'bulkmail' MySQL
BULK_USER User for the 'bulkmail' MySQL
BULK_PASSWD Password for the 'bulkmail' MySQL
BULK_DATABASE Database for the 'bulkmail' MySQL
MIN_LOGIN_INTERVAL Minimum time permitted between two
successful authentication.
Authentication requests made before this
teme elapsed are rejected. To remove
this restriction, set this to 0.
NORELAY If set, insert to table 'relay'
after successful authentication
is disabled. This in effect disables
relaying (Roaming Users).
TCP_FILE File containing list of default tcprules
to be applied. Default is
/var/indimail/etc/tcp.smtp.
OPEN_SMTP File containing list of tcprules for IP
addresses of users who have
authenticated in the past
RELAY_CLEAR_MINUTES. Default
is /etc/indimail/tcp/open-smtp
_
RELAY_TABLE authindi used MySQL table name containing user
InLookup authentication timestamps for
clearopensmtp implementing POP/IMAP before SMTP.
_
PASSWD_CACHE authindi used Enables Password caching. Improves
InLookup performance for a very busy site. For
vchkpass dormant sites, this should be turned off
as passwd changes take time to get
reflected.
QUERY_CACHE authindi used Enables Query caching by using inquery.
InLookup Improves performance for a very busy site.
vchkpass
vsetpass
sq_vacation
iauth
_
RELAY_CLEAR_MIN clearopensmtp used No of minutes after which the
-UTES InLookup authentication request maintained in the
vuserinfo relay table is expired. This is used for
authindi sites using pop/imap before smtp
vchkpass authentication
proxyimap
proxypop3
_
DATA_TIMEOUT proxyimap used Used for timing out if no data flows
proxypop3 between the user's MUA and the proxy, or
between the proxy and the actual
IMAP/POP3 daemon.
SLEEPTIME Minimum duration between connection
attempts, if connection is refused.
CERTFILE openssl certificate to use
LEGACY_SERVER If the destination imap/pop3 server are
not indimail then this needs to be set.
The destination imap/pop3 server will
always see proxy server's IP address
regardless from where the user logs in.
_
DOMAIN_LIMITS authindi used The vlimit structure is checked and the
vadduser pw_gid field is OR'ed with the value
vdeldomain fetched from the vlimit table. This
iauth allows domain wide limits to be set for
vacation users.
vdelivermail
vpasswd
vsetpass
vuserinfo
vchkpass
vgroup
vrenameuser
vmoveuserdir
vreorg
vpurge
inlookup
vmoduser
vsetuserquota
vcfilter
vfilter
_
IMAPCLIENT proxyimap used If set, access to IMAP is granted
POP3CLIENT proxypop3 used If set, access to POP3 is granted
_
ADMIN_HOST adminclient used variables used to connect to indisrvr
for adding users. Also used by
adminclient for executing administration
commands.
ADMIN_PORT proxypop3 Port for connecting to indisrvr
ADMIN_USER proxyimap User for connecting to indisrvr
ADMIN_PASS Password for connecting to indisrvr
ADMIN_TIMEOUT Used to set timeout for executing any
administration command by indisrvr
_
HARD_QUOTA vadduser Default value of quota for user addition
through vadduser (without -q option).
ALLOWCHARS vadduser used List of allowed characters in the
username.
AVG_USER_QUOTA vfstab used value in bytes the average mailbox size
for a user.
_
CNTRL_HOST InLookup used Environment variables to be set when a
qmail-rspawn domain is extended across multiple
qmail-lspawn servers. These variables point to the
vuserinfo central database which has the
vserverinfo 'hostcntrl' table. If both MASTER_HOST
and CNTRL_HOST are defined all updates
go to MASTER_HOST adn all queries go
to CNTRL_HOST
CNTRL_USER User for connecting to MySQL database
CNTRL_PASSWD password for connecting to MySQL
database
CNTRL_VPORT port for connecting to MySQL database
CNTRL_SOCKET socket for connecting to MySQL database
CNTRL_TABLE Table for storing user location
default is 'hostcntrl'
CNTRL_DATABASE database on which table 'hostcntrl' is
present. default is 'indimail'
MASTER_HOST Host to which all writes should go to
_
INFIFO InLookup used Name of FIFO used for communicating with
qmail-smtpd InLookup. InLookup pools connections to
authindi MySQL and provides the interface between
proxyimap IndiMail and MySQL
proxypop3
inquerytest
INFIFODIR used Directory specifying location of INFIFO
_
DEBUG_LOGIN authindi used If set, displays all login parameters
iauth in logs
_
DEBUG InLookup used Enables verbose debugging
vckpass
EDITOR dbinfo used Editor to use for editing the MCD file
HOME mate used These programs uses the HOME environment
osh variable to switch its CWD.
supernotepad
secpanel
lite
TABLE_NAME osh used Access control file for granting program
specific access to users.
TERM osh used Initialize various escape sequence for
terminal handling
logtop
MAIL maildir2mbox used mbox file name
MAILDIR maildirwatch used These programs use the MAILDIR
environment to select the Maildir
MAILTMP maildir2mbox used Temporary file that maildir2mbox can
overwrite
MCDFILE InLookup used Mail Control Definition file. Specifies
dbinfo the list of all MySQL servers
vuserinfo participating in a distributed setup.
vserverinfo
MAXADDR chowkidar used Number of addresses to load in chowkidar
_
TCPLOCALHOST tcpclient set The domain name of the local host. If
tcpserver there is no currently available domain
name for the local IP address,
TCPLOCALHOST is not set
TCPLOCALIP The IP address of the local host in
dotted-decimal form
TCPLOCALPORT The local TCP port numer, in decimal
TCPREMOTEPORT The remote TCP port number.
_
TCPREMOTEHOST tcpclient set The domain name of the remote host, with
tcpserver uppercase letters converted to
tcprulescheck lowercase. If there is no currently
available domain name for the remote IP
address, TCPREMOTEHOST is not set.
TCPREMOTEINFO A connection-specific string, perhaps a
username, supplied by the remote host
via 931/1413/IDENT/TAP. If the remote
host did not supply connection
information, TCPREMOTEINFO is not set.
_
TCPREMOTEIP tcpclient set The IP address of the remote host.
tcpserver
tcprulescheck
rblsmtpd
_
POST_HANDLE vadddomain used Used to set the path to program that
vdeldomain will be executed on successful completion
vrenamedomain of the program. If not set, program with
vadduser the same name as that of the calling
vdeluser program will be executed in the directory
vrenameuser /var/indimail/libexec. If the program exists,
vmoveuserdir then return status of the handle will be
vpasswd returned
vmoduser
vaddaliasdoman
_
COURIERTLS imapd/pop3d used Path to ssl enabler (sslerator / couriertls)
IMAP_STARTLS imapd If set to yes, STARTTLS is advertised
IMAP_TLS_REQUIRED imapd If set to 1, STARTTLS is enforced
POP3_STARTLS pop3d If set to yes, STARTTLS is advertised
POP3_TLS_REQUIRED pop3d If set to 1, STARTTLS is enforced
TLS_CERTFILE imapd/pop3d Path to certficate
TLS_PROTOCOL imapd/pop3d TLS1 or SSL3 depending on wheter you
use straight SSL or STARTTLS
TLS_VERIFYPEER imapd/pop3d Set to NONE if you don't want to require
a client certificate
BANNER sslerator Banner to display when STARTTLS is issued
_
ACCT_INACT_EXPIRY pam-multi used Max days a account can be inactive after
pam-checkpwd PAM authentication will expire the account
PASSWORD_EXPIRY (if using Max days within which the password has
iauth.so) to be changed. After this, authentication
will return failure
_
MESSID qmail-lspawn set Path of message file in queue
qmail-rspawn
_
DELAYED_INSERT authvchkpw used used delayed insert during inserts,
vdelivermail deletes, updates, replace
vadduser
vdeluser
vmoduser
vmoveuserdir
vpasswd
vrenamedomain
vrenameuser
authindi
proxyimap
proxypop3
inlookup
indisrvr
vchkpass
clearopensmtp
_
DISCARD_BOUNCE vdelivermail used Discard bounces if set
_
AUTHINFO qmail-smtpd set set to the authenticated username
_
USE_BTREE inlookup used use tsearch(3) & perform binary search
MAX_BTREE_COUNT limit the number of search nodes
Environment Variable Program Purpose
MYSQL_LIB All Path to indimail shared library
Almost all of indimail's code resides
in this shared library
_
MYSQL_TABLE Name of the default indimail
authentication table containing active
users. If not set, this defaults to
'indimail'
MYSQL_INACTIVE_TABLE Name of the default indimail
authentication table containing inactive
users. If not set, this defaults to
'indibak'
ENABLE_MYSQL_ESCAPE If set, all queries to MySQL will be
escaped before sending to mysqld.
MYSQL_INIT_COMMAND
MYSQL_READ_DEFAULT_FILE
MYSQL_READ_DEFAULT_GROUP
MYSQL_OPT_RECONNECT any indimail Reconnect automatically after failure
MYSQL_OPT_READ_TIMEOUT program that Read timeout from MySQL
MYSQL_OPT_WRITE_TIMEOUT connects to Write timeout writing to MySQL
MYSQL_OPT_CONNECT_TIMEOUT MySQL Connect timeout for MySQL
MYSQL_OPT_PROTOCOL Set unix domain or tcp/ip sockets
MYSQL_SET_CLIENT_IP Set the client ip when connecting
CLIENT_COMPRESS Set client compress flag
CLIENT_INTERACTIVE Set client interactive flag
MYSQL_OPT_SSL_CA Certificate Authority (CA) file path
MYSQL_OPT_SSL_CAPATH directory that contains trusted SSL CA
MYSQL_OPT_SSL_CERT client public key certificate file
MYSQL_OPT_SSL_CIPHER permitted cipher list for SSL encryption
MYSQL_OPT_SSL_CRL certificate revocation lists file
MYSQL_OPT_SSL_CRLPATH certificate revocation lists directory
MYSQL_OPT_SSL_ENFORCE Enforce SSL connection
MYSQL_OPT_SSL_VERIFY_CERT Enable verification of the server's CN
MYSQL_OPT_SSL_MODE security state to use for the connection
SSL_MODE_DISABLED, SSL_MODE_PREFERRED,
SSL_MODE_REQUIRED, SSL_MODE_VERIFY_CA,
SSL_MODE_VERIFY_IDENTITY.
MYSQL_OPT_SSL_KEY client private key file
MYSQL_OPT_TLS_VERSION TLSv1.2, TLSv1.3. Older versions
have been removed

Some of these environment variables have default values. The table below lists some of these.

Environment Variable default value
BULK_MAILDIR bulk_mail
DEFAULT_DOMAIN set by ./configure
BASE_PATH /home/mail
MYSQL_HOST localhost
MYSQL_VPORT 3306
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_DATABASE indimail
MYSQL_TABLE indimail
MYSQL_INACTIVETABLE indibak
MYSQL_PASSWD
MYSQL_USER indimail
QMAILDIR /var/indimail
TCP_FILE /var/indimail/etc/tcp.smtp
OPEN_SMTP_CUR_FILE /var/indimail/etc/open-smtp
RELAY_TABLE relay
MCDFILE "mcdinfo" or /etc/indimail/control/mcdinfo
INFIFO infifo or /run/indimail/inlookup/infifo

STARTUP

IndiMail uses svscan(8) to start, monitor and restart (if neccessary) all services needed for proper functioning of email server. On most Linux systems, svscan is installed as a systemd(1) service. On systems that uses the traditional init(1), svscan is installed as an entry in /etc/inittab. Some of the later systems come with upstart(8), in which case, svscan is installed in /etc/event.d. On MacOS the file indimail.plist in the directory /System/Library/LaunchDaemons is used by launchctl to start IndiMail.

The program initsvc(1) can be used to enable svscan to get automatically started on system boot. All services are installed in /service which each directory representing a service. These services are started and monitored by supervise(8). The table below gives all the service directories in /service. You can use the svps(1) program to list the status of all services.

Directory Service Description
clamd clam(8) antivirus
freshclam freshclam(1) clam signature update service
qscanq qscanq(8) virus scanner
qmail-smtpd.25 qmail-smtpd(8) ESMTP service on port 25
qmail-smtpd.587 qmail-smtpd(8) ESMTP Mssage Submission Port rfc-2476(5)
qmail-smtpd.366 qmail-smtpd(8) ESMTP ODMR service on port 366
qmail-smtpd.465 qmail-smtpd(8) ESMTPS service on port 465 (SSL)
qmail-qmtpd.209 qmail-qmtpd(8) QMTP service on port 209
qmail-qmqpd.628 qmail-qmqpd(8) QMTP service on port 628
qmail-send.25 qmail-send(8) delivery service
slowq slowq-send(8) rate controlled delivery service
fetchmail fetchmail(1) service
greylist.1999 qmail-greyd(8) greylisting daemon
qmail-imapd.143 imapd(8) IMAP service on port 143
qmail-imapd-ssl.993 imapd(8) IMAPS service on port 993
proxy-imapd.4143 imapd(8) IMAP proxy on port 4143
proxy-imapd-ssl.9143 imapd(8) SSL enabled IMAP proxy on port 9143
qmail-pop3d.110 pop3d(8) POP3 service on port 110
qmail-pop3d-ssl.995 pop3d(8) POP3S service on port 995
proxy-pop3d.4110 pop3d(8) POP3 proxy on port 4110
proxy-pop3d-ssl.9110 pop3d(8) SSL enabled POP3 proxy on port 9110
indisrvr.4000 indisrvr(8) IndiMail administration daemon
inlookup.infifo InLookup(8) Service
pwdlookup nssd(8) Name Service Switch Daemon
poppass.106 password change service through poppassd protocol daemon
mysql.3306 mysqld(8) MySQL daemon
qmail-poppass.106 qmail-poppass(8) Poppassd protocol service
qmail-logfifo Logger service using fifologger
daned.1998 service for getting TLSA records
.svscan svscan service for logging svscan output to /var/log/svc/svscan
resolvconf Provide private local namespace for /etc/resolv.conf
dnscache DNS cache service
udplogger.3000 udplogger service through UDP protocol
mrtg MRTG service

The services on port 25, 587, 110, 4110, 143, 4143 support STARTTLS

You can use svc(8) to start / stop individual services. To disable / enable all services, you can use the initsvc(8) command.

IndiMail attempts to be as portable as possible across different system. You can use any of the following two commands to start IndiMail on all systems

 # service indimail start
 or
 # initsvc -on

POST Execution Handle

Some indimail programs have a post execution handle. A post execution handle is a program with the same name as that of the calling program but in the directory /var/indimail/libexec. On successful completion, such programs execute the handle program and return the status of the called handle program. If the handle program is not accessible, the return status is zero. Normally, the handle program always gets executed from /var/indimail/libexec directory, but you can override the program called by setting the environment variable POST_HANDLE.

Post execution handle is useful when you want to achieve a task that is beyond the scope of IndiMail's programs. These handle help you to extend the functionality of indimail programs when adding domains, adding users, modifying a domain or modifying a user. These handles are passed arguments depending on the arguments passed to the original program. See the section on POST HANDLE in the man page for the programs mentioned below having post execution handle.

Programs that support this post execution handle are vadddomain(1), vdeldomain(1), vrenamedomain(1), vadduser(1), vdeluser(1), vrenameuser(1), vmoveuserdir(1), vpasswd(1).

The distribution includes two post execution handles vadddomain and vadduser.

PROGRAMS

IndiMail has more than 250 programs installed in /var/indimail/bin, /var/indimail/sbin.

vadddomain(1) - Add a virtual domain

[step]
vmoddomain(1) - Modify domain delivery instruction

[step]
vaddaliasdomain(1) - Add an alias domain

[step]
vrenamedomain(1) - Rename a domain

[step]
vatrn(1) - Set a domain for ODMR (RFC-2645)

[step]
vdeldomain(1) - Delete a domain

[step]
vdominfo(1) - Print domain information

[step]
printdir(1) - Print domain directory structure layout

[step]
vlimit(1) - Modify domain limits

[step]
vadduser(1) - Add a user

[step]
vuserinfo(1) - Display user information

[step]
vserverinfo(1) - Display server information for a user

[step]
vpasswd(1) - Change user password

[step]
qmail-poppass(1) - Change user password using poppassd protocol

[step]
vdeluser(1) - Delete a user

[step]
vmoduser(1) - Modify user attributes

[step]
vsetuserquota(1) - Set user disk quota

[step]
vmoveuserdir(1) - Move user's homedir

[step]
vrenameuser(1) - Rename a user

[step]
resetquota(8) - Resets user's disk usage

[step]
valias(1) - Add, modify, delete aliases

[step]
vcalias(8) - Convert .qmail to IndiMail's alias database

[step]
vcaliasrev.sh(8) - Convert IndiMail's alias database to .qmail

[step]
vgroup(1) - Add, modify, delete groups

[step]
vacation(8) - Set vacation response.

[step]
autoresponder - Rate/Time limited autoresponder for IndiMail

[step]
vsmtp(8) - Add, modify, delete SMTP routes

[step]
vipmap(1) - Map an ip address to a virtual domain

[step]
vcfilter(1) - Add, modify, delete vfilter

[step]
hostcntrl(8) - Add, modify, delete hostcntrl entries

[step]
vhostid(8) - Add, modify, delete hostid

[step]
dbinfo(8) - Display database information for all IndiMail servers

[step]
ipchange(8) - Change IP address of an IndiMail server

[step]
vbulletin(1) - Set instant bulletin for IndiMail users

[step]
vfstab(8) - Add, modify, delete fstab entries

[step]
execmysql - Execute MySQL client on an IndiMail MySQL server

[step]
vtable - Create MySQl tables using text file templates

[step]
install_tables - Create All IndiMail MySQL tables using built-in templates

[step]
chowkidar(8) - IndiMail's Spam Guard

[step]
logmonitor(8) - Utility for real time monitoring of logs

[step]
controlsync - Utility to maintain IndiMail's control file in sync

[step]
updatefile - Update an IndiMail control file

[step]
vfilter(8) - Filter mail before delivery using vfilter mechanism

[step]
vdelivermail(8) - Deliver mails to Maildir

[step]
ismaildup(1) - Discard duplicate mails during local delivery

[step]
postdel(8) - Deliver mails to Maildir if using postfix as MTA

[step]
proxyimap(8) - IMAP proxy to connect to a server in a distributed setup

[step]
proxypop3(8) - POP3 Proxy to connect to a server in a distributed setup

[step]
vproxy(8) - Generic Proxy utility

[step]
vchkpass(8) - IndiMail's checkpassword utility

[step]
systpass(8) - checkpassword utility to authenticate against shadow

[step]
ldap-checkpwd(8) - checkpassword utility to authenticate against LDAP

[step]
pam-checkpwd - checkpassword utility to authenticate against PAM

[step]
InLookup(8) - IndiMail's name lookup daemon

[step]
inquerytest(8) - Utility to test inlookup queries

[step]
hostsync(8) - Sync uncommited entries in a IndiMail cluster

[step]
clearopensmtp(8) - remove stale IPs authorized for pop before SMTP

[step]
updaterules(8) - Rebuild tcp.smtp.cdb with IP address open for relay.

[step]
vreorg(8) - Do reorg of IndiMail's database for speed optimization

[step]
vdeloldusers(8) - Delete inactive users, trash and other housekeeping

[step]
indisrvr(8) - Secure server to run commands on an IndiMail cluster

[step]
adminclient(8) - Client for connecting to indisrvr

[step]
sslerator - TLS/SSL protocol wrapper

[step]
mgmtpass(8) - Utility for managing admin users

[step]
vpriv(8) - Set program access rights for indimail admin users.

[step]
osh(8) - Operator Shell

[step]
flash(1) - A menu shell with hotkeys and process group management

[step]
altermime - MIME encoded email pack alteration too

[step]
ripmime - email attachment / decomposition tool

[step]
mpack - pack a file in MIME format

[step]
munpack - unpack messages in MIME or split-uuencode format

[step]
nssd - Name Service Switch daemon for IndiMail

UCSPI-TCP

tcpserver - accepts incoming TCP connections

[step]
tcpcat - prints data from a remote host

[step]
tcpclient - creates an outgoing TCP connection

[step]
tcp-env - set up TCP-related environment variables

[step]
tcprules - compiles rules for tcpserver(1)

[step]
tcprulescheck - checks tcprules

[step]
addcr - inserts a CR ( 15) before each LF ( 12)

[step]
delcr - removes a CR ( 15) at the end of each line of input

[step]
fixcrio - inserts missing CRs at the ends of lines

[step]
argv0 - runs a program with a specified 0th argument

[step]
date@ - prints the date on a remote host

[step]
finger@ - gets user information from a remote host

[step]
http@ - gets a web page from a remote host

[step]
who@ - prints the list of active users on a remote host

[step]
mconnect - connect to a remote SMTP server

[step]
rblsmtpd - block mail from rbl listed site

[step]
recordio - record the input/output of a program

[step]
maildirserial - send a maildir through a client

[step]
maildirqmtp - send a maildir through a QMTP

[step]
maildircmd - pipe a maildir through a command

[step]
maildirsmtp - send a maildir through a SMTP

[step]
serialcmd - Pipe messages through a command

[step]
serialqmtp - Blast messages to QMTP

[step]
serialsmtp - Blast messages to SMTP

Daemontools

envdir - run program with env according to files in a directory

[step]
envuidgid - run program with env variables with an account's uid, gid

[step]
setuidgid - run program under a specified account's uid and gid

[step]
supervise - starts and monitors a service

[step]
svc - controls services monitored by supervise(8)

[step]
svok - checks whether supervise(8) is running

[step]
svscan - starts and monitors a collection of services

[step]
svscanboot - starts svscan(8) in the service directory

[step]
svstat - prints the status of services monitored by supervise(8)

[step]
logselect - Select portions of log

[step]
mlmatchup - collect info on messages and deliveries through multilog

[step]
matchup - collect info on messages and deliveries

[step]
multilog - qmail/indimail logging utility

[step]
multitail - watch output sent to a file

[step]
tai64n - puts a precise timestamp on each line

[step]
tai64nlocal - convert TAI64N timestamps to a human-readable format

[step]
tai64nunix - convert TAI64N timestamps to fractional secs since epoch

[step]
teepipe - copy stdin to a program and stdout

[step]
qfilelog - log messages to a single file

[step]
splogger - make entries in syslog

[step]
fghack - is an anti-backgrounding tool

[step]
pgrphack - runs a program in a separate process group

[step]
softlimit - runs another program with new resource limits

[step]
multipipe - supervise an pipeline of commands in a directory

[step]
spipe - supervise an pipeline of commands

[step]
setlock - runs another program with a file locked

[step]
readproctitle - maintains a rotated log in memory for inspection by ps(1)

[step]
qmail-log - the qmail activity record

[step]
xqp - locate a message given its qp

[step]
xrecipient - locate all deliveries to one recipient

[step]
xsender - locate all messages from one sender

[step]
columnt - align columns in a table

822mess

822print - print a mail message

[step]
822headerok - Check if email message header is 822-compliant

[step]
822header - print the header of a mail message

[step]
822addr - extract 822 headers with values from email

[step]
822body - print the body of a mail message

[step]
822headerfilter - filter message header through a program

[step]
822bodyfilter - filter message body through a program

[step]
822date - print the date in a mail message

[step]
822field - print the value of a header field in a mail message

[step]
822fields - extract 822 field values from email headers

[step]
822received - print the Received fields in a mail message

dot-qmail

autoresponder - Rate and time limited autoresponder for qmail/indimail

[step]
qreceipt - respond to delivery notice requests

[step]
replier - Reply to messages through external program

[step]
bouncesaying - perhaps bounce each incoming message

[step]
condredirect - perhaps redirect mail to another address

[step]
condtomaildir - Feed message to program and perhaps store message

[step]
forward - forward new mail to one or more addresses

[step]
dot-forward - read a .forward file under qmail

[step]
filterto - perhaps redirect mail to another address

[step]
except - reverse the exit code of a program

[step]
preline - prepend lines to message

[step]
rrforward - round-robin message delivery

[step]
maildirdeliver - deliver a mail message to a maildir

[step]
fastforward - forward mail according to a cdb database

[step]
ifaddr - match address

[step]
checkaddr - match address on addresses supplied on standard input

[step]
iftocc - match to or cc

[step]
iftoccfrom - match to, cc or from

[step]
checkdomain - match domain on addresses supplied on standard input

[step]
newaliases - rebuild the data base for the mail aliases file

[step]
setmaillist - create a binary mailing list

[step]
printmaillist - print the contents of a binary mailing list

[step]
setforward - create a forwarding database

[step]
printforward - print the instructions in a forwarding database

[step]
newinclude - create a binary mailing list from an :include: file

qmail

ofmipd - accept outgoing mail through OFMIP

[step]
ofmipname - build a name-address database for ofmipd

[step]
qmail-daemon - turn on qmail delivery with multiple queues

[step]
qmail-start - turn on qmail delivery

[step]
qmail-smtpd - receive mail via SMTP

[step]
swaks - SMTP transaction tester

[step]
qmail-sql - prepare data in MySQL for qmail-smtpd(8)

[step]
qmail-cdb - prepare data in cdb format for qmail-smtpd(8), and spawn-filter(8)

[step]
recipient-cdb - prepare recipients for qmail-smtpd

[step]
qmail-qmqpc - queue a mail message via QMQP

[step]
qmail-qmqpd - receive mail via QMQP

[step]
qmail-qmtpd - receive mail via QMTP

[step]
qmail-lspawn - schedule local deliveries

[step]
qmail-local - deliver or forward a mail message

[step]
qmail-rspawn - schedule remote deliveries

[step]
qmail-remote - send mail via SMTP / ESMTP

[step]
qmail-poppass - change passwords from across the network

[step]
qmail-clean - clean up the queue directory

[step]
qmail-send - deliver mail messages from the queue

[step]
todo-proc - process todo messages from the queue

[step]
spawn-filter - Interceptor for qmail-local / qmail-remote

[step]
mailsubj - send a mail message with a subject line

[step]
predate - Prepend RFC 822 compliant Date header to data on stdin

[step]
datemail - Insert local time in RFC 822 Date header before injecting mail

[step]
qmail-inject - inject mail in the queue

[step]
new-inject - preprocess a mail message before injecting

[step]
sendmail - an electronic mail transport agent

[step]
qmail-tcpok - clear TCP timeout tabl

[step]
qmail-tcpto - print TCP timeout table

[step]
qmail-qread - list outgoing messages, recipients, summarize queue stats

[step]
qmail-rm - Remove mails from Queue

[step]
qpq - Print qmail queue contents

[step]
queue-fix - Create/Repair qmail queue structure

[step]
qmail-queue - queue a mail message for delivery

[step]
qmail-multi - queue multiplexor and filter

[step]
qmail-qfilter - front end for qmail-multi that does filtering

[step]
qmail-nullqueue - send mail to /dev/null

[step]
qmail-dk - Domainkey sign/verify and queue message for delivery

[step]
dktest - exercise the domainkeys library

[step]
dk-filter - DK/DKIM sign/verify and queue message for deilvery

[step]
qmail-dkim - DKIM sign/verify and queue message for delivery

[step]
dkim - Exercise the DKIM library

[step]
dknewkey - Generate a new DK/DKIM key

[step]
qmail-getpw - give addresses to users

[step]
qmail-newmrh - prepare morercpthosts for qmail-smtpd

[step]
qmail-newu - prepare address assignments for qmail-lspawn

[step]
qmail-pw2u - build address assignments from a passwd file

[step]
qmailctl - Control qmail mail delvery

[step]
qmail-showctl - analyze the qmail configuration files

[step]
uacl - test qmail-smtpd access list

[step]
maildirmake - create a Maildir for incoming mail

[step]
qmaildirmake - create a Maildir for incoming mail

[step]
maildirwatch - look for new mail in a Maildir

[step]
maildir2mbox - move mail from a Maildir to an mbox

[step]
mbox2maildir - conver mbox to Maildir

[step]
greydaemon - greylisting daemon (written in perl)

[step]
qmail-greyd - greylisting daemon for IndiMail, qmail & netqmail

[step]
base64 - base64 encoding/decoding utility

[step]
qarf - Abuse Report Format Generator

[step]

[step]
qaes - Advanced Encryption Standard encryption/decryption utility

[step]
qnotify - generate Message Dispostion Notification

[step]
rrt - Respond to Return-Receipt-To request

[step]
plugtest - SMTP Plugin tester

[step]
batv - BATV tester

[step]
uacl - qmail-smtpd accesslist tester

[step]
surblfilter - qmail SURBL blocklist interface

[step]
drate - indimail domain rate control

CDB

cdbmake - write cdb by reading series of encoded records on input

[step]
cdbdump - read cdb in stdin and print database in cdbmake(1) format

[step]
cdbget - search for records in cdb

[step]
cdbgetm - search for multiple records matching a key in cdb

[step]
cdbstats - read cdb on stdin and print statistics

[step]
cdbtest - read cdb on stdin and test it

Miscellaneous

These programs have been borrowed from external Open Source Projects and they add significant value to the working of the IndiMail server.

imapd - Courier-IMAP server

[step]
pop3d - Courier-POP3 server

[step]
couriertls - Courier TLS/SSL protocol wrapper

[step]
maildirkw - set maildir message keywords

[step]
maildiracl - manage access control lists of courier-imap maildir

[step]
deliverquota - deliver to a maildir with a quota

[step]
mkimapdcert - create a test SSL certificate for IMAP over SSL

[step]
mkpop3dcert - create a test SSL certificate for POP3 over SSL

[step]
bogofilter - fast Bayesian spam filter

[step]
bogolexer - Utility program for separating email messages into tokens

[step]
bogotune - find optimum parameter settings for bogofilter

[step]
bogoupgrade - upgrades bogofilter database to current version

[step]
bogoutil - Dumps, loads, and maintains bogofilter database files

[step]
bf_compact - shell script to compact a bogofilter directory

[step]
bf_copy - shell script to copy a bogofilter working directory

[step]
bf_tar - shell script to write a tar file of a bogofilter directory to stdout

[step]
fetchmail - fetch mail from a POP, IMAP, ETRN, or ODMR-capable server

[step]
fetchmailconf - configure fetchmailrc

[step]
freshclam - update clamd virus database

[step]
clamd - an anti-virus daemon

[step]
qscanq - qmail virus scanner

[step]
run-cleanq - request cleanq to be run

[step]
cleanq - clean up qscanq work directory

[step]
sigtool - signature and database management tool

FUN STUFF

fortune - print a random, hopefully interesting, adage

[step]
unstr - dump strings in pointer order

[step]
strfile - create a random access file for storing strings

[step]
randstr - fetch a random text string from a specified file

Apart from the above, IndiMail provides many more programs which can work with qmail without needing IndiMail to be installed. The list of such programs not listed here are being compiled and will be available in the near future.

Mailing lists

There are four Mailing Lists for IndiMail

1. indimail-support - mailing list for support
indimail-support@lists.sourceforge.net

Subscribe for Support at https://lists.sourceforge.net/lists/listinfo/indimail-support. Old discussions can be seen at https://sourceforge.net/mailarchive/forum.php?forum_name=indimail-support

2. indimail-devel - mailing list to discuss IndiMail development
indimail-devel@lists.sourceforge.net

Subscribe at https://lists.sourceforge.net/lists/listinfo/indimail-devel Old discussions can be seen at https://sourceforge.net/mailarchive/forum.php?forum_name=indimail-devel

3. indimail-announce - List to announce New Releases or patches
Subscribe at http://groups.google.com/group/indimail

4. Archive at Google - http://groups.google.com/group/indimail
This groups acts as a remote archive for indimail-support and indimail-devel.

There is also a Project Tracker for IndiMail (Bugs, Feature Requests, Patches, Support Requests) at http://sourceforge.net/tracker/?group_id=230686

You can also get titbits about IndiMail at

Tips&Tricks - http://indimail.blogspot.com

twitter - http://twitter.com/indimail

facebook - http://www.facebook.com/pages/indimail/88063516703?\_fb_noscript=1

sourceforge - https://sourceforge.net/apps/laconica/indimail/

Download/Repository

IndiMail provides the package in both source and binary forms. Installation from the source requires you to download other packages from the respective websites apart from the indimail core package. The indimail package contains a patch directory which allows you to add features to qmail, ucspi-tcp, courier-imap, etc. Details for building IndiMail from source can be read in the INSTALL document provided with the source package. Many users may find this complicated and hence binary packages are also provided which can be downloaded from the RPM repo mentioned below.

Source Download - http://sourceforge.net/projects/indimail/

Git Repository - http://indimail.git.sourceforge.net/

Stable RPM Repo - http://download.opensuse.org/repositories/home:/indimail/

Raw RPM Repo - http://download.opensuse.org/repositories/home:/mbhangui/

IndiMail uses openSUSE Build service to build the RPM whenever there is a new release. Currently, the list of supported distributions for IndiMail RPM (for both 32 and 64 bit) are

* Arch Linux

* SUSE o openSUSE_Leap_15.3 o openSUSE_Leap_15.4 o openSUSE_Tumbleweed o SUSE Linux Enterprise 12 o SUSE Linux Enterprise 12 SP1 o SUSE Linux Enterprise 12 SP2 o SUSE Linux Enterprise 12 SP3 o SUSE Linux Enterprise 12 SP4 o SUSE Linux Enterprise 12 SP5 o SUSE Linux Enterprise 15 o SUSE Linux Enterprise 15 SP1 o SUSE Linux Enterprise 15 SP2 o SUSE Linux Enterprise 15 SP3 o SUSE Linux Enterprise 15 SP4

* Red Hat o Fedora 36 o Fedora 37 o Red Hat Enterprise Linux 7 o Scientific Linux 7 o CentOS 7 o CentOS 8 o CentOS 8 Stream o CentOS 9 Stream o AlmaLinux 8 o AlmaLinux 9

* Debian o Debian 10.0 o Debian 11.0

* Ubuntu o Ubuntu 18.04 o Ubuntu 20.04 o Ubuntu 22.04

You can also use yum(8) to install IndiMail by downloading the repo file and importing the RPM key. e.g. for Fedora 17 one could do the following

# wget -O /etc/yum.repos.d/indimail.repo \
 http://download.opensuse.org/repositories/home:/indimail/Fedora_17/home:indimail.repo

# rpm --import \
 http://download.opensuse.org/repositories/home:/indimail/Fedora_17/repodata/repomd.xml.key

# yum install indimail.x86_64
    or
# yum install indimail.i386

SEE ALSO

indimail-env(5) indimail-services(7), dbinfo(8), inlookup(8), pam-multi(8), vhostid(8), vsmtp(8), vreorg(8), hostcntrl(1) vadduser(1), vdeluser(1), initsvc(1), sslerator(1) svscan(8), supervise(8), qmailctl(8), svctool(8), svps(1), systemd(1) autoresponder(1), rpm(8) yum(8) rfc-2645(5)

Clone this wiki locally