Web Images Groups Directory
Recently Visited Groups | Help | Sign in
Google Groups Home
Group info
Members: 25
Language: English (UK)
Group categories:
Computers > Systems
Computers > Software
Computers > Internet
More group info »
Detailed Feature    


IndiMail is a secure, reliable, efficient, simple mail server coded entirely in C supporting host of features. It has a extremely small footprint. It provides the functionality of delivering mails to the User's mailbox and retrieving the same by any third party MUA used by the Internet Community. However IndiMail does not provide any Email Client or web mail Client. It is designed for typical Internet-connected UNIX hosts and this is what it is -

This section has been heavily borrowed from The qmail web page, http://cr.yp.to/qmail.html.

Secure: Large part of IndiMail's security comes from qmail. Different sub-systems use different userids to create partitions which prevent one system accessing the other.

Reliable: Since indimail uses qmail as its MTA a message, once accepted into the system, will never be lost. IndiMail also optionally supports Maildir, a new, super-reliable user mailbox format. Maildir, unlike mbox files and mh folders, won't be corrupted if the system crashes during delivery. Even better, not only can a user safely read his mail over NFS, but any number of NFS clients can deliver mail to him at the same time.

Efficient: qmail's modular, lightweight design and sensible queue management make it the fastest available message transfer agent.



Simple: IndiMail is vastly smaller than any other Internet mail systems and hence we have better control on its behaviour. Some reasons why:
  1. IndiMail has one simple forwarding mechanism that lets users handle their own mailing lists.
  2. IndiMail is instantly triggered by new items in the queue, so the IndiMail system has just one delivery mode: fast+queued.
  3. Total control on the processing load and behaviour with few control files or environment.

Mailing list management is one of IndiMail's strengths. Notable features:
  • IndiMail lets each user handle his own mailing lists. The delivery instructions for user-whatever go into ~user/.qmail-whatever.
  • IndiMail makes it really easy to set up mailing list owners. If the user touches ~user/.qmail-whatever-owner, all bounces will come back to him.
  • IndiMail supports VERPs, which permit completely reliable automated bounce handling for mailing lists of any size.

SPEED---IndiMail blasts through mailing lists two orders of magnitude faster than sendmail.
  • IndiMail automatically prevents mailing list loops, even across hosts.
  • IndiMail allows inconceivably gigantic mailing lists. No random limits.
  • IndiMail handles aliasing and forwarding with the same simple mechanism. For example, Postmaster is controlled by ~alias/.qmail-postmaster. This means that cross-host loop detection also applies to aliases.

Setup:
  • automatic adaptation to your UNIX variant---no porting needed
  • Linux, SunOS, Solaris, and more
  • automatic per-host configuration (config, config-fast), make install.
  • quick installation---no big list of decisions to make
  • High degree of automation of configuration through svctool.

Security:
  • clear separation between addresses, files, and programs
  • minimization of setuid code (qmail-queue)
  • minimization of root code (qmail-start, qmail-lspawn)
  • five-way trust partitioning---security in depth
  • optional logging of one-way hashes, entire contents, etc. (EXTRAQUEUE)
  • virus scanning through qscanq

Message construction:
  • RFC 822, RFC 1123
  • full support for address groups
  • automatic conversion of old-style address lists to RFC 822 format
  • sendmail hook for compatibility with current user agents
  • header line length limited only by memory
  • host masquerading (control/defaulthost)
  • user masquerading ($MAILUSER, $MAILHOST)
  • automatic Mail-Followup-To creation ($QMAILMFTFILE)

SMTP service:
  • RFC 2821, RFC 1123, RFC 1651, RFC 1652, RFC 1854, RFC 1870, RFC 1893
  • 8-bit clean
  • 931/1413/ident/TAP callback
  • relay control---stop unauthorized relaying by outsiders (control/rcpthosts)
  • no interference between relay control and aliases
  • automatic recognition of local IP addresses
  • per-buffer timeouts
  • hop counting
  • parallelism limit (tcpserver)
  • per host limit (tcpserver - MAXPERIP)
  • refusal of connections from known abusers (tcpserver, badmailfrom, badmailpatterns, badhelo, blackholedsender, blackholedpatterns)
  • goodrcptto, goodrcptpatterns which override the above
  • blackholercpt, blackholercptpatterns for blackholing mails to specific senders.
  • Control files spamignore, blackholedsender, badmailfrom, relaymailfrom,  badrcptto, chkrcptdomains, goodrcptto, blackholercpt can be specified in plain text, cdb format as well as stored in MySQL tables.
  • relaying and message rewriting for authorized clients
  • authenticated SMTP PLAIN, LOGIN, CRAM-MD5 ( HMAC (RFC 1321, RFC 2104, RFC 2554))
  • STARTLS extension, TLS
  • Support for SMTPS
  • POP/IMAP before SMTP
  • ETRN (RFC 1985)
  • ODMR (RFC 2645)
  • RBL/ORBS support (rblsmtpd)
  • SPAM Control (Reject/Tag/Accept) using Bayesian techniques
  • High Performance MS Virus Control via control file viruscheck and control file signatures
  • Content Filtering and blocking of prohibited attachments via control file bodycheck
  • Ability to bounce mails for unknown/inactive users (CHECKRECIPIENT)
  • ability to have the RECIPIENT check for selective domains using control file chkrcptdomains
  • Antispoofing mode (turned on by environment variable ANTISPOOFING)
  • Masquerading ability.
  • Multiline greetings via control file smtpgreeting
  • Message Submission AgentMSA (RFC 2476)
  • Domain IP address pair access control via control file hostaccess
  • Per User accesslist via control file accesslist
  • SPF – Sender Permitted From
  • Per User control of environment variable by envrules (rules file set by environment variable FROMRULES)
  • Greylisting capability using qmail-greyd / greydaemon
  • Bounce Address Tag Validation (BATV)

Queue management:
  • instant handling of messages added to queue
  • parallelism limit (control/concurrencyremote, control/concurrencylocal)
  • split queue directory---no slowdown when queue gets big
  • quadratic retry schedule---old messages tried less often
  • independent message retry schedules
  • automatic safe queueing---no loss of mail if system crashes
  • automatic per-recipient checkpointing
  • automatic queue cleanups (qmail-clean)
  • queue viewing (qmail-qstat)
  • detailed delivery statistics (qmailanalog)
  • Configurable number of queues and time slicing algorithm for load balancing via qmail-multi.
    • A queue in indimail is configurable by three environment variables QUEUE_BASE, QUEUE_COUNT, and QUEUE_START. A queue in IndiMail is a collection of queues. Each queue in the collection can have one or more SMTP listener but a single or no delivery (qmail-send) process. It is possible to have the entire queue collection without a delivery process (e.g. SMTP on port 366 – ODMR). The QUEUE_COUNT can be defined based on how powerful your host is (IO bandwidth, etc). NOTE: This configurable number of queues is possibe with a single installation and does not require you to install multiple instances of qmail.
  • Ability to hold local, remote or both deliveries (holdlocal, holdremote control file)
  • Qmail Queue Extra Header – Ability to pass extra headers to local and remote deliveries via qmail-queue (Environment variable QQEH).
  • External Virus scanning via QHPSI – Qmail High Performance Scanner Interface
  • Ability to extend QHPSI interface through plugins. The keyword plugin:shared_lib defined in the environment variable QHPSI denotes 'shared_lib' to be loaded.
  • Virus scanner qscanq. Ability to detect virus via a third party scanner defined by SCANCMD environment variable (clamscan, clamdscan, etc)
  • Blocking of prohibited filename extensions via qscanq program
  • DOMAIN KEYS (qmail-dk) RFC 4870
  • DKIM with ADSP/SSP (qmail-dkim) RFC 4871
  • Set all header values listed in envheader control file as environment variables.
  • Log all headers listed in control file logheaders to stderr.
  • Remove all headers listed in control file removeheaders from email.
  • Ability to do line processing instead of block processing.
  • qmail-nullqueue – blackhole the mail silently.

Bounces:
  • QSBMF bounce messages---both machine-readable and human-readable
  • HCMSSC support---language-independent RFC 1893 error codes
  • double bounces sent to postmaster
  • Ability to discard double bounces
  • Ability to preserve MIME format when bouncing.
  • Control of bounce process via envrules (rules file controlled by environment variable BOUNCERULES)
  • limit size of bounce using control file bouncemaxbytes
  • Ability to process bounces using external bounce processor (environment variable BOUNCEPROCESSOR)

Routing by domain:
  • any number of names for local host (control/locals)
  • any number of virtual domains (control/virtualdomains)
  • domain wildcards (control/virtualdomains)
  • configurable percent hack support (control/percenthack)
  • Clustered Domain. Same virtual domain can exist on multiple hosts, each having its own set of users. Provides Load Balancing

Remote SMTP delivery:
  • RFC 2821, RFC 974, RFC 1123, RFC 1870
  • 8-bit clean
  • automatic downed host backoffs
  • Configurable tcp timeouts for downed host backoffs.
  • automatic switchover to next best MX
  • artificial routing---smarthost, localnet, mailertable (control/smtproutes)
  • Support for jumbo ISP (control/smtproutes.cdb)
  • per-buffer timeouts
  • passive SMTP queue---perfect for SLIP/PPP (serialmail)
  • AutoTURN support (serialmail)
  • Authenticated SMTP (userid/passwd in control/smtproutes)
  • STARTTLS, TLS
  • Static and Dynamic Routing. (SMTPROUTES environment variable)
  • Spam control (SPAMFILTER environment variable)
  • Environment variable control via envrules (rules file controled by environment variable RCPTRULES)
  • QMAILREMOTE environment variable to run any executable/script instead of qmail-remote

Local delivery:
  • user-controlled address hierarchy : fred controls fred-anything
  • mbox delivery
  • reliable NFS delivery (maildir)
  • user-controlled program delivery: procmail etc. (qmail-command)
  • optional new-mail notification (qbiff)
  • detailed Delivered-To Headers
  • optional NRUDT return receipts (qreceipt)
  • autoresponder RFC 3834 compliance (provide Auto-Submitted, In-Reply-To, References fields (RFC 3834))
  • conditional filtering (condredirect, bouncesaying, vfilter)
  • Environment variable control via envrules (rules file controled by environment variable RCPTRULES)
  • Eliminate duplicate messages
  • QMAILLOCAL environment variable to run any executable/script instead of qmail-local

Other:
  • Change concurrency of tcpserver without restart.
  • TLS/SSL Support in tcpserver
  • Ability to restrict connection per IP (MAXPERIP)
  • run shutdown script if present on svc -d
  • ability to log svscan output using multilog
  • nssd Name Service Switch which allows extending of the system passwd database to IndiMail's database.

  • pam-multi - Generic PAM module allows any external programs to authenticate against IndiMails database.

  • inlookup – High Performance User Lookup Daemon.
  • indisrvr – Indimail Administration Daemon.
  • Spawn-filter - Ability to add disclaimer, run multiple filters before local/remote delivery.
  • Proxy for IMAP/POP3 Protocol
  • svctool – Configuration tool for IndiMail.



In addition to all the above mentioned features we have customized and implemented a host of new and creative features to increase the reliability, efficiency and speed .
  1. 100% guarantee of service uptime.
    • Automated system for continuous monitoring of all critical mail services without using resources on the system. System brings up the service in case it goes down in the rarest of cases.
  2. Increased Queue Efficiency
    • Highly optimized queue writing and reading by implementing time sliced multiplexing. These queue system enables IndiMail to do around 3 Million plus deliveries/day
  3. Support for most of the mail clients
    1. Evolution (good GUI with groupware)
    2. Mozilla
    3. Thunderbird (memory pig)
    4. Netscape
    5. Eudora
    6. Pine (Cute and simple)
    7. MUTT (so far the best email client, with the most configurable features, downside - no gui)
    8. Sylpheed (A real fast client based on GTK)
    9. balsa
    10. Outlook Express (I find it dumb, buggy, piggy, virus prone; use it at your own risk)
    11. Microsoft Outlook (I find it dumb, buggy, piggy, virus prone; use it at your own risk)
    12. squirrelmail (A good configurable web client. Accesses mail via IMAP)
    13. Any Client supporting IMAP/POP3 (including Web Based)
  4. Close to the Operating SystemEntire code written in pure C with NO modern day pollutants (java, perl, python etc), ensuring application's closeness to the OS for optimized healthy performance.
  5. Shared library
    • Entire APIs in a shared library (libindimail.so) enabling upgrades and patch fixes without bringing down production systems or replacement of binaries.
  6. Support for very large no of Domains.
    • Support for 1 to 23 million virtual email domains using a "grow as it goes" balanced directory tree. There are clients hosting 5000+ Corporate Domains using IndiMail
  7. Users Per Domain
    • Support for 1 to 23 million email users per domain using the same balanced tree structure. IndiMail has till now supported 3 Million+ users currently with around 5000 users addition/day.
  8. Pluggable Authentication modules.
    • IndiMail uses checkpassword authentication mechanism.
  9. Relay Control
    • The Application supports authenticated SMTP and POP/IMAP before SMTP to prevent unauthorized relaying.
  10. Inbuilt firewall.
    • Prevents unauthorized hosts from accessing IndiMail services using tcpserver. Per IP concurrency limit prevents DOS attacks.
  11. Automated password generation.
    • Facility for users to automatically generate passwords.
  12. SPAM Control
    1. Non acceptance of mails from known chronic spammers based on the sender email id or the pattern of his id including the domain
    2. Tarpitting - Throttle mails from Potential spammers sending huge no of emails.
    3. Per IP concurrency limit (to prevent potential denial of service attack from one IP)
    4. vfilter – filter can be additionally used to control spam through vfilter facility.
    5. Automatic building up of badmailfrom/badrcptto/spamdb by using chowkidar in cron(1)
    6. Chronic spammers can also be blackholed through the control file blackholedsenders.
    7. Bulk senders/spammers can be forwarded to a slower queue or any other queue via the control file envrules.
    8. Host access control via hostaccess control file.
    9. Content-filtering via bodycheck control file and virus filtering via viruscheck control file.
    10. RFC 2505, RFC 2635
    11. Bayesian spam filter using bogofilter. Any external spam filter configurable by setting SPAMFILTER environment variable.
    12. Ready to use SPAM database corpus
    13. greylisting using qmail-greyd

  13. Runtime configurable mail size limit
    1. Domain wide mail size configured via control file databytes.
    2. User Specific mail size limit for local users via envrules.
  14. Accounting
    1. last login/last authentication
    2. Last password change
    3. User addition date/time
  15. Statistics and Reports
    1. Total mails received/sent per day
    2. Mails sent/received per user/Domain/IP
    3. User additions per day
  16. Autoresponder Facility
    • Autoresponder facility which sends customized automated replies. A typical example of this is vacation.
  17. Filtering Facility
    • This feature can be used to filter messages and take various action on a match. The match could be any criteria based on the standard mail headers. The action on match can be rejection of mail, delivery to a specified folder or forward to another email address (vfilter).
  18. Bulletin Feature
    • This feature (vbulletin) delivers instant messages to all users using a single i-node and hence conserving disk space and disk IO.
  19. Configurable logging
    • Logging can be based on real world admin's comments and requirements.
  20. Stale Account Management
    • Optional facility to automatically delete the stale accounts (vdeloldusers)
  21. Administration Tools
    1. Easy to use and intuitive administration tools to manage the Mail System. alias, instant bulletins, quota, user administration, mailbox cleanup, accounting, spam control, security administration, etc) all through a ncurses based Toolkit called Flash.
    2. Apart from the above GUI's, there are 60 command line programs available to allow the bright administrators to carry out any task needed in maintaining a modern mailing system for the 25th century.
  22. IMAP4 Rev1 and POP-3 Support
    1. Provides highly configurable out of the box IMAP and POP-3 Support using the courier-imap package.
    2. Provides Proxies for IMAP and POP3 allowing you to scale users across multiple hosts using the user-cluster feature of IndiMail
  23. Mail Cluster
    • This provides clustered mailing functionality or a mail cluster (and in fact it also works with any proprietary solutions supporting SMTP). Clients can get value add if they have legacy mail servers supporting SMTP and want move out some users from legacy solutions to the Open scalable solution - IndiMail, without changing the domain name. Clients can also get out of existing legacy mailing solutions by deploying the relay server software without causing customer impact and downtimes. The relay server can provide clustering solution for a legacy system where clustering is not supported.

 

Version: 
Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google