On Wednesday 28 March 2007 16:45, Ronan McGlue wrote:
> I want to set up and 'easy' way for users to submit messages for
> whitelisting / blacklisting and spamassassin submission.
>
> The easiest way i can think of ( ~ 4000 active users) who will be on an
> exchange server within 3 months, is to just get them to forward the
> message(s) to an address ie [EMAIL PROTECTED] or [EMAIL PROTECTED] What i 
> will then
> have to do is parse it, see who it is from and then submit it using the
> appropriate hook in SA.
>
> So i need to peel of the forwarding encapsulation in exim, how feasible
> is this, and how accurate will it be to the original message?!

I'm not saying that this is the best way or even a good way, but a possible
way of doing it within Exim could be with help of the MIME ACL. Example:

In the RCPT ACL:

  accept  acl = our_user
          domains = kibibyte.se
          local_parts = ham : spam
          set acl_m_learn = ${if !def:acl_m_learn {$local_part} \
                              {error}}

(The our_user ACL checks that the sender is a local or authenticated user.)

In the MIME ACL:

  deny    condition = ${if eq {$acl_m_learn}{error}}
          message = "You cannot learn a message as ham and spam simultaneously."
  accept  condition = ${if def:acl_m_learn}
          condition = ${if eq{$mime_content_type}{message/rfc822}}
          !condition = $mime_is_rfc822
          decode = 
/var/spool/exim4/$acl_m_learn/$message_exim_id-$mime_part_count

(/var/spool/exim4/spam and /var/spool/exim4/ham should be created in advance.
Non-Debian users would likely replace "exim4" with just "exim".)
Here, other checks can be implemented to ensure that the attached message is 
suitable for feeding to sa-learn (or spamc -L).

Last, a router:

learn_attached:
  driver = redirect
  condition = ${if def:acl_m_learn \
                   {${run {/bin/sh -c "sa-learn --$acl_m_learn 
/var/spool/$acl_m_learn/$message_exim_id-*"}{1}{1}}}}
  data = :blackhole:

A glob expansion operator had been useful here (I didn't want to create a new
subdirectory for every message). Instead of blackholing the carrier message,
it could be saved somewhere, or an autoreply be sent (but that would probably
become annoying). Instead of sa-learn --$acl_m_learn, spamc -L $acl_m_learn
might be used instead, but then each message has to be passed separately on
stdin. Instead of using a router, the attached messages could be passed to
sa-learn right in the MIME ACL, but that would make load control harder.

Again, this is just a silly example.

-- 
Magnus Holmgren        [EMAIL PROTECTED]
                       (No Cc of list mail needed, thanks)

  "Exim is better at being younger, whereas sendmail is better for 
   Scrabble (50 point bonus for clearing your rack)" -- Dave Evans

Attachment: pgp3NjVpoPItJ.pgp
Description: PGP signature

-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/

Reply via email to