Re: A little sieve help
Ned Freed <ned.freed@mrochek.com> Fri, 12 December 2008 00:21 UTC
Return-Path: <owner-ietf-mta-filters@mail.imc.org>
X-Original-To: ietfarch-sieve-archive-Aet6aiqu@core3.amsl.com
Delivered-To: ietfarch-sieve-archive-Aet6aiqu@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id F364928C124 for <ietfarch-sieve-archive-Aet6aiqu@core3.amsl.com>; Thu, 11 Dec 2008 16:21:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.513
X-Spam-Level:
X-Spam-Status: No, score=-2.513 tagged_above=-999 required=5 tests=[AWL=0.042, BAYES_00=-2.599, DATE_IN_PAST_03_06=0.044]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id EWMA6JFBV-kv for <ietfarch-sieve-archive-Aet6aiqu@core3.amsl.com>; Thu, 11 Dec 2008 16:21:23 -0800 (PST)
Received: from balder-227.proper.com (properopus-pt.tunnel.tserv3.fmt2.ipv6.he.net [IPv6:2001:470:1f04:392::2]) by core3.amsl.com (Postfix) with ESMTP id E60963A6AB7 for <sieve-archive-Aet6aiqu@ietf.org>; Thu, 11 Dec 2008 16:21:22 -0800 (PST)
Received: from balder-227.proper.com (localhost [127.0.0.1]) by balder-227.proper.com (8.14.2/8.14.2) with ESMTP id mBC0F0pm041936 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 11 Dec 2008 17:15:00 -0700 (MST) (envelope-from owner-ietf-mta-filters@mail.imc.org)
Received: (from majordom@localhost) by balder-227.proper.com (8.14.2/8.13.5/Submit) id mBC0F06S041935; Thu, 11 Dec 2008 17:15:00 -0700 (MST) (envelope-from owner-ietf-mta-filters@mail.imc.org)
X-Authentication-Warning: balder-227.proper.com: majordom set sender to owner-ietf-mta-filters@mail.imc.org using -f
Received: from mauve.mrochek.com (mauve.mrochek.com [66.59.230.40]) by balder-227.proper.com (8.14.2/8.14.2) with ESMTP id mBC0Em8h041895 for <ietf-mta-filters@imc.org>; Thu, 11 Dec 2008 17:14:58 -0700 (MST) (envelope-from ned.freed@mrochek.com)
Received: from dkim-sign.mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01N2Z0ZV0Y7K00T1ZS@mauve.mrochek.com> for ietf-mta-filters@imc.org; Thu, 11 Dec 2008 16:14:43 -0800 (PST)
Received: from mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01N2YGOH84LS000078@mauve.mrochek.com>; Thu, 11 Dec 2008 16:14:38 -0800 (PST)
Date: Thu, 11 Dec 2008 11:53:09 -0800
From: Ned Freed <ned.freed@mrochek.com>
Subject: Re: A little sieve help
In-reply-to: "Your message dated Thu, 11 Dec 2008 13:50:20 -0500" <494160EC.6030709@studsvik.com>
To: Patrick Baldwin <Patrick.Baldwin@studsvik.com>
Cc: Aaron Stone <aaron@serendipity.cx>, ietf-mta-filters@imc.org
Message-id: <01N2Z0ZRKISW000078@mauve.mrochek.com>
MIME-version: 1.0
Content-type: TEXT/PLAIN; charset="ISO-8859-1"; format="flowed"
Content-transfer-encoding: 7bit
References: <49404348.8090304@studsvik.com> <1228960410.29598.1672.camel@turtle> <494160EC.6030709@studsvik.com>
Sender: owner-ietf-mta-filters@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-mta-filters/mail-archive/>
List-ID: <ietf-mta-filters.imc.org>
List-Unsubscribe: <mailto:ietf-mta-filters-request@imc.org?body=unsubscribe>
> Is there some other way I should be trying to use sieve to prevent a
> possible mail loop?
First of all, sieve implementations are required to check for redirect loops
and break them if necessary. This means that accidental redirection loops
should be a nonissue - if they are an issue something is broken in your Sieve
implementation.
This leaves two other cases: intentional loops, such as when want both A and B
to get a copy of every message no matter where it was originally sent, and
bounce loops.
Adding headers and checking for them later does break loops in this case, but
unless you're able to add the header on both A and B it won't break the loop
until one duplicate is received. You're much better off finding a header or
some other telltake that's added naturally by either side and checking for it
in the other side. Received: fields are often a useful place to look for such
telltales.
Bounce loops are a nastier bit of business. A true bounce loop should not be
able to form because of the requirement on redirect that it not change
empty envelope from addresses. But this means that a bounce will be redirected
and then dropped by the other end, which breaks the loop but adds overhead
you'd probably like to avoid.
The other problem with bounce loops is that not all MTAs or filtering
mechanisms are standards compliant, and you may find cases where envelope from
addresses get filled in by forwarders (bad) or bounces are sent to header From:
fields (also bad). Again, if your Sieve implementation does any of these
things, it's broken.
Probably the most effective way to deal with them is to simply not forward
messages with an empty envelope address, e.g.
if not envelope :is "from" "" { redirect "a@b"; }
But that will prevent forwarding of all bounces, which may not be what you
want. If that's unworkable, you're back to looking for telltales the other
system inserts into the DSNs it generates. Find one of those, test for it,
and if it is present don't redirect the message.
Ned
- A little sieve help Patrick Baldwin
- Re: A little sieve help Aaron Stone
- Re: A little sieve help Patrick Baldwin
- Re: A little sieve help Ned Freed