Enemies of Carlotta keeps all data about the lists in the ~/.enemies-of-carlotta directory. It will be created automatically when you create your first list. You need to arrange manually for the mails to be processed by the list manager. The details differ from mail system to another. For QMail and Postfix, see below.
Each list has one or more owners, who also moderate subscriptions or moderate some or all postings. On completely unmoderated lists the list owners are responsible for answering questions about the list. On completely moderated lists, they have to approve each message before it is sent to the list. On lists with posting=auto, messages from subscribers are sent automatically to the list, and the moderators have to approve the rest.
The config file has a keyword=value format:
[list] owners = liw@liw.iki.fi archived = no posting = free subscription = free mail-on-subscription-changes = yes mail-on-forced-unsubscribe = yes language = fi
The keywords archived, posting, and subscription correspond to the options with the same names. Other keywords are:
Note that you need to arrange mail to arrive at the list (and its command addresses) by configuring your mail system. For Qmail and Postfix, see below.
To see the subscribers on that list:
People wanting to subscribe to the list should mail
If you're running a virtual domain, example.com, and the mails are being delivered to via /var/qmail/control/virtualdomains to joe-exampledotcom, the files would be called .qmail-exampledotcom-fans and .qmail-exampledotcom-fans-default and would contain
(all on one line, of course, in case the manual page formatter breaks it on several lines).
(The former file needs only the second line, but the first line does no harm and it is easier to keep track of things when the files have the same content. Note that $RECIPIENT should be included verbatim, it is not a metavariable for you to expand.)
If you are running a virtual domain configured so that all mail to the domain @example.com is delivered to joe-exampledotcom, you need to create the files .courier-exampledotcom-fans and
If the virtual domain is for list use only, then it is sufficient to create only the file .courier-exampledotcom-default containing the latter two lines.
and then a .procmailrc file containing
To use Enemies of Carlotta with a Postfix virtual domain, you need to set up a virtual regular expression map, typically called /etc/postfix/virtual_regexp (add virtual_maps = regexp:/etc/postfix/virtual_regexp to your /etc/postfix/main.cf file to enable it). The regexp file needs to do ugly things to preserve the recipient address. Add the following to the regexp file:
That's two lines. Use joe-virtual instead, if recipient_delimiter for your Postfix is configured to a minus instead of a plus.. Then, in your .procmailrc file, add the --skip-prefix=joe-virtual- and --domain=your.virtual.domain options to both calls to enemies-of-carlotta.
(Yes, I think these things are much too complicated, too.)
A plugin is a Python module (file named with a .py suffix), placed in the ~/.enemies-of-carlotta/plugins directory. The plugins are loaded automatically upon startup, if their declared interface version matches the one implemented by Enemies of Carlotta. The interface version is declared by the module global variable PLUGIN_INTERFACE_VERSION.
Plugins can define hook functions that are called by appropriate places in the EoC code. At the moment, the only hook function is send_mail_to_subscribers_hook, which can manipulate a mail message before it is sent to the subscribers. The function must look like this:
def send_mail_to_subscribers_hook(list, text):
The list argument is a reference to the MailingList object that corresponds to the list in question, and text is the complete text of the mail message as it exists. The function must return the new contents of the mail message.