English version: 0.02alpha
Chinese caution: 本文是过去用英文写的,有兴趣的朋友可以翻译成中文,谢谢。
IntroduceThere are a lot of maillist softwares compatible with the Postfix, but we need a simple configure and powerful one, Ecartis will meet our need. Ecartis is a certain kind of mailing list manager software, designing for small binary and fast operation, with modular archtecture. It support sendmail/Postfix Exim4 and qmail, very easy to configure, but it's bit regreat that ecartis lacks documentation :-(
RequirementBefore you begin your work, make sure the following softwares or configuration are done: Postfix (1.x/2.x, 2.x are better)
gcc and gcc-devel package
GNU make and other tools
root account
Unix like OS, linux is prefer
Make and buildGetting ecartis
Ecartis developed since 1998, but it's not 1.0 release ready. The latest version is 1.0.0-snap20040426, use wget or ncftp to get the tar ball from http://web.archive.org/web/20041010224951/ftp://ftp.ecartis.org/.
Complie ecartis
Unpack the tar ball with GNU tar, like this:
$ tar xfz ecartis-1.0.0-snap20040426.tar.gz
Then get into the src directory, there is no autoconf/automake style configure file ship with ecartis, only a Makefile.dist, copy the Makefile.dist to Makefile:
$ cp Makefile.dist Makefile
Make sure that gcc and make can work properly before you begin to complie, type make to complie:
$ make
InstallationIf nothing exception occur, ecartis and modules complie finished, binary will in the build direcotry. Install ecartis when you want to use it: $ make install
The default location of ecartis installation will at the top of source directory, if you want to use ecartis in another location, copy them to the different path.
At the top of source directory, assume you want to place ecartis and modules in /home/ecartis, do as the following steps:
$ su root# useradd -d /home/ecartis -s /bin/false ecartis# cp ecartis /home/ecartis/# cp ecartis.cfg.dist /home/ecartis/ecartis.cfg# cp ecartis.aliases.dist /home/ecartis/ecartis.aliases# cp -rf modules lists queue /home/ecartis/
Configuration - create a testlist
You should remember that use full path to run ecartis or things will be corupt! Please refer to ecartis documentation if you've some doubt.
# /home/ecartis/ecartis -newlist lists
This will create a list name "lists" for you, ecartis will prompt for list admin/owner, enter email address response for it. Then ecartis will create "lists" directory in the /home/ecartis/lists/lists and user/config file, at last ecartis display aliases content:
# Aliases for 'lists' mailing list.lists: "|/home/ecartis/ecartis -s lists"lists-request: "|/home/ecartis/ecartis -r lists"lists-repost: "|/home/ecartis/ecartis -a lists"lists-admins: "|/home/ecartis/ecartis -admins lists"lists-moderators: "|/home/ecartis/ecartis -moderators lists"lists-bounce: "|/home/ecartis/ecartis -bounce lists"
Configuration - Postfix
Use vi or emacs or other editor, open main.cf, paste the ecartis aliases content into the default aliases file, which commonly located at /etc/postfix/aliases, but i highly recommend that use a seperate aliases file, it's more clean and easy to manage:) my configuration shown as follow:
alias_maps = hash:/etc/postfix/aliases hash:/home/ecartis/ecartis.aliasesmydestination = $myhostname, $mydomainmydomain = postfix.org.cnmyhostname = lists.postfix.org.cn
Save main.cf and ecartis.aliases, then run postalias to rebuild ecartis.aliases, last reload postfix:
# postfix reload
Test listsIt's the time to test ecartis now. Send an email to [listname]-request@domain.tld as title or body contain "subscribe" to test subscribe function, in my case, send email to lists-request@lists.postfix.org.cn. Look at the maillog to get detail information. Almost immediately you will receive reply from ecartis, if nothing unexpected, you've been subscribed. The email will contains:
subscribeSubscribed.
Virtual HostingEcartis can easily support virtual hosting, with postfix we need some tricks to get ecartis to work.
By some means virtual hosting equal to virtual domain, the Postfix MTA support virtual domain via alias, but virtual_alias_maps(2.0) or virtual_maps(1.0) could not support sendmail style aliases, then it means we can't simpliy put some lines like:
lists-request@lists.postfix.org.cn "| /home/ecartis/ecartis -r lists"
into those maps/files, how could we implement virtual domain? The trick is according to sendmail style aliases, the processing flow show as below:
mail to lists@domain.tld- lookup virtual_alias_maps- found lists@domain.tld point to "lists-domain.tld"- lookup aliases maps- found lists-domain.tld point to "|/home/ecartis/ecartis -s listname"- OK
Assume we want to support thisdomain.tld and thatdomain.tld at the same machine, follow the steps:
1) DNS setup, point both the thisdomain.tld and thatdomain.tld's mx to the machine running ecartis
2) We only make thisdomain.tld as an example, add the following lines into the Postfix virtual_alias_maps file:
lists@thisdomain.tld lists-thisdomain.tldlists-request@thisdomain.tld lists-request-thisdomain.tldlists-repost@thisdomain.tld lists-repost@thisdomain.tldlists-admins@thisdomain.tld lists-admins-thisdomain.tldlists-moderators@thisdomain.tld lists-moderators-thisdomain.tldlists-bounce@thisdomain.tld lists-bounce-thisdomain.tld
Then run postmap to rebuild it
3)add the following lines into sendmail style aliases file:
lists-thisdomain.tld: "|/home/ecartis/ecartis -s lists-thisdomain.tld"lists-request-thisdomain.tld: "|/home/ecartis/ecartis -r lists-thisdomain.tld"lists-repost-thisdomain.tld: "|/home/ecartis/ecartis -a lists-thisdomain.tld"lists-admins-thisdomain.tld: "|/home/ecartis/ecartis -admins lists-thisdomain.tld"lists-moderators-thisdomain.tld: "|/home/ecartis/ecartis -moderators lists-thisdomain.tld"lists-bounce-thisdomain.tld: "|/home/ecartis/ecartis -bounce lists-thisdomain.tld"
Then run postalias to rebuild it
4)run this command:
#/home/ecartis/ecartis -newlist lists-thisdomain.tld
and enter the listowner address, then ecartis will create config and users file for the list "lists-thisdomain.tld" in /home/ecartis/lists direcotry.
5)configure /home/ecartis/lists/lists-thisdomain.tld/config to meet your need, refer to ecartis documentation or varible difinition for details.
If everything works ok, then we done it :-)
Trouble ShootingWhen the first time you install and configure ecartis, there will be a lot of problem, see this section carefully. Q:ecartis can't work!
A:Turn on debug mode, in /path/to/ecartis/ecartis.cfg, uncomment "debug = 0" and set it large than 0, for example 10(the highest level), ecartis will log anything it do and see in ecartis.log, look at it for detail error.
Q:ecartis always send email as unkonw sender domain
A:check your system hostname, if it's not fqdn, ecartis will append the domain after the hostname, and make it as sender domain, if this name can't resolve, then recipient's MTA will bounce/reject the mail.
Q:How to config ecartis to confirm subscrition?
A: set "subscribe-mode = confirm" and save the config file, that's ok!
ReferenceDocs of ecartis
ecartis.hlp in source
ecartis source file
ecartis mailing list
Postfix documentation