====== Installation Instructions for exim4-daemon-heavy by Charles AI4RI ====== * Created by Charles Blackburn "ai4ri" - ai4ri@winlink.org * Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. * This file is free documentation; * The Free Software Foundation gives unlimited permission to copy, distribute and modify it. ===== Pre-installation requirements ===== * You must have installed the exim-heavy version of exim to enable support for server side filters. * **NOTE**: I am using a monolithic exim configuration file (/etc/exim4/exim4.conf.template). * If you are using the multiple config version of exim-config let me know. * When using Exim, be sure to [[plu:install_plu#build_paclink-unix | build paclink-unix]] with the enable-postfix config: ./configure --enable-postfix * this enables the correct command line options for the //sendmail// command. ===== Installation Instructions for exim4 wl2k system filter ===== * place the file [[#systemfilter_exim_mta_wl2k_filter_-_exim_s_version_of_wl2km4 | system.filter]] (see below) into the ///etc/exim4// directory. * cut and paste the following into the top of the ///etc/exim4/exim4.conf.template// file: ########################################################################### ## WINLINK 2000 Filter ########################################################################### system_filter = "/etc/exim4/system.filter" system_filter_user = Debian-exim # Set this to the user that exim runs as system_filter_group = Debian-exim # Set this to the group that exim runs as system_filter_pipe_transport = address_pipe system_filter_file_transport = address_file system_filter_reply_transport = address_reply system_filter_directory_transport = address_directory * this must go at the top of the file underneath the following lines: # Macro defining the main configuration directory. # We do not use absolute paths. .ifndef CONFDIR CONFDIR = /etc/exim4 .endif * make sure that the wl2k directories for paclink-unix are set for the debian username/group that exim is using. * By default this is Debian-exim.Debian-exim, this MUST be the same as system_filter_user and system_filter_group. chown -Rv Debian-exim.Debian-exim /usr/local/var/wl2k * restart exim: /etc/init.d/exim4 restart * create a blank eximfilter.log file in the wl2k folder: touch /usr/local/var/wl2k/eximfilter.log && chown Debian-exim.Debian-exim /usr/local/var/wl2k/eximfilter.log && \ chmod 666 /usr/local/var/wl2k/eximfilter.log * all message processing by the filter will be logged into ///usr/local/var/wl2k/eximfilter.log// ===== system.filter, EXIM MTA wl2k filter - exim's version of wl2k.m4 ===== # Exim filter <<== do not edit or remove this line! # EXIM4 filter for paclink-unix WL2K software # # Created by Charles Blackburn "AI4RI" # # ai4ri@winlink.org - charlesb@cflpacket.net # # ##----------------------------------------------------------------------- # only run any of this stuff on the first pass through the filter - this # is an optimisation for messages that get queued and have several delivery # attempts if not first_delivery then finish endif ##----------------------------------------------------------------------- ##----------------------------------------------------------------------- # if this is an error notification message, make sure it doesn't get lost if error_message then finish endif ##----------------------------------------------------------------------- # Create a logfile of message IDs processed" logfile /usr/local/var/wl2k/eximfilter.log logwrite "-----------------------------------------------------------------------" logwrite "$tod_log SYSTEM.FILTER: Processing Message: $message_id" logwrite "From: $header_from ($sender_address) -> To: $header_to" logwrite "Subject: $h_subject" logwrite "Message size: $message_size bytes" # Check if this is a message going to a winlink account *@winlink.org if $header_to: contains "@winlink.org" and # if it's going to a winlink account $sender_address: does not contain "root@" # AND it's NOT coming via paclink (will always have a sender of root@) then # it must be an outgoing wl2k message, so put into wl2k/outbox logwrite "$message_id is an OUTGOING WL2K Message" logwrite "Sending to pipe" unseen pipe "/usr/local/libexec/mail.wl2k" # unseen save /usr/local/var/wl2k/outbox/ logwrite "We're done here this time...." seen finish endif # Check if this is a message coming from a winlink account *@winlink.org or via paclink if $header_to: contains "@winlink.org" and # it's coming FROM a winlink account (mail -r call@winlink.org) $sender_address: contains "root@" # AND it's coming via paclink (will always have a sender of root@) then # it must be an incoming wl2k message via paclink logwrite "$message_id is an INCOMING WL2K Message via paclink" unseen finish endif # if it's FROM a winlink address (mail -r call@winlink.org) then send via pipe if $header_from: contains "@winlink.org" then logwrite "$message_id is a message going OUT from a winlink address" logwrite "Sending to pipe" unseen pipe "/usr/local/libexec/mail.wl2k" # unseen save /usr/local/var/wl2k/outbox/ seen finish endif # end of filter - make sure that this message gets processed if it if it bombs out to here, it failed the above filters logwrite "$message_id is not a WL2K Message" unseen finish