summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorng <ng@immerda.ch>2017-07-11 11:01:47 +0200
committerng <ng@immerda.ch>2017-07-11 12:15:10 +0200
commitd9738269d3ba5f66e2534dcee19db269001c8956 (patch)
treeb5d0f720eb7606a150a624be13fd19eb37163c5d /docs
parent505417a605be55a4d2a65025ad76165a579504b8 (diff)
add documentation on how to hook into exim
It follows the style of postfix's documentation and won't go into too much detail, but should give you a working schleuder integration. Closes #17
Diffstat (limited to 'docs')
-rw-r--r--docs/index.md36
1 files changed, 36 insertions, 0 deletions
diff --git a/docs/index.md b/docs/index.md
index 99486bb..3ca32d0 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -142,6 +142,42 @@ Afterwards run `postmap /etc/postfix/virtual_aliases`.
From now on each Schleuder-list will instantly be reachable by email once it was created.
+#### Exim
+
+{: .note}
+This section describes only those parts of a Exim-setup that are relevant to Schleuder. We assume that you have a sensible and tested Exim-setup already.
+
+As with any exim email routing, we need to configure essentially a router that accepts and directs a mail to a transport, which knows how to hand-over an email to schleuder.
+
+Within the `begin routers` section of your `exim.conf` you can add the following router:
+
+ mlschleuder:
+ driver = accept
+ condition = ${lookup {$local_part@$domain}lsearch{/etc/exim/schleuder-lists} {yes}{no}}
+ local_part_suffix_optional
+ local_part_suffix = +* : -bounce : -sendkey : -request : -owner
+ transport = mlschleuder_transport_local
+ no_more
+
+`/etc/exim/schleuder-lists` is a simple textfile containing one list-address per line. You can for example create it by executing `schleuder-cli lists list > /etc/exim/schleuder-lists` after creating or deleting any lists. In more advanced setups you might have different conditions depending on how you manage the inventory of your schleuder lists and decide to accept a mail for a list.
+
+Within the `begin transports` section of your `exim.conf` you then configure the transport:
+
+ mlschleuder_transport_local:
+ driver = pipe
+ user = schleuder
+ group = schleuder
+ # schleuders generates nice log messages for some of the problems
+ return_fail_output = true
+ home_directory = /var/lib/schleuder/lists/$domain/$local_part
+ command = "/usr/bin/schleuder work $local_part$local_part_suffix@$domain"
+ message_size_limit = 10M
+
+Please note that we keep the `$local_part_suffix` when handing the mail over to schleuder, so schleuder can e.g. detect bounces or sendkey emails properly.
+
+Restart exim and you have your working schleuder+exim setup.
+
+Remember to repeat dumping the list of schleuder-lists to `/etc/exim/schleuder-lists` also for newly created lists later.
### Schleuder API