Skip to Content.
Sympa Menu

devel - [sympa-dev] VERP works

Subject: Developers of Sympa

List archive

Chronological Thread  
  • From: Adam Bernstein <address@concealed>
  • To: address@concealed
  • Subject: [sympa-dev] VERP works
  • Date: Tue, 29 Nov 2005 17:35:41 -0800

I've successfully gotten VERP working with Sympa 5.1 and Postfix 2.0.18,
although what I mean by "gotten it working" might not quite be what
you'd think. I haven't yet done anything to bounced.pl to get it to
parse out the VERPed return-path for automated bounce processing, which
should just be a small bit of straightforward programming, but that
wasn't our primary need. Our primary need was that AOL users on our
lists are always reporting list messages as spam, and we can get AOL to
send feedback to us every time that happens, but they don't give us the
identity of the reporter. So we couldn't act on them.

So now the headers we get back from AOL include the VERPed return-path
that gives the subscribed address in coded form, and we can clean our
lists and everybody's happy. If someone else wants to add the few lines
of code in bounced.pl that will read the subscribed address from the
headers instead of trying to parse it out of the message body of a
bounce, to eliminate all the "Subscriber <> not found in list <>" errors
and process all bounces successfully, we'd be happy not to do it
ourselves. :) Also, the special welcome_path and remind_path
parameters that essentially fake VERP could be taken out of the system.

Here's what's needed:

Add to sympa.conf:
sendmail_args -oi -odi -oem -V
(syntax is slightly different for Postfix v2.3 and later)

Add to postfix's main.cf:
recipient_delimiter = +
propagate_unmatched_extensions = virtual

And that's it. All messages sent by sympa will now have an envelope
sender like:
Return-Path: <address@concealed>
The reason it's so easy is that with the above settings, anything after
the + in the local part of the address is interpreted simply as an
"address extension", and delivery is made to the local address without
that extension. So the routing of incoming bounces doesn't change, even
though there's now more information in the form of an address extension.
And no other server function depends on the Return-Path -- everything
else just uses From: lines. The reference is
http://www.postfix.org/VERP_README.html.

If you have virtual robots, this assumes that you're using the default
Sympa list_aliases.tt2, with aliases of the form
[% list.domain %]-[% list.name %]. We had the order reversed from way
back when, and had to change all our list aliases (or else do some
trickery with virtual address rewriting to manually emulate the native
address extension behavior), so that the +user=hostname extension would
come last in the local part of the address.

Also, keep in mind that this means Postfix will now make a separate SMTP
connection for each recipient, instead of batching them as determined by
Sympa's nrcpt parameter and Postfix's
default_destination_recipient_limit parameter. So delivery takes longer
-- on our system, with nrcpt=25 and Postfix at its default, VERPed
delivery takes about 3 times longer than before. This is significant
for lists of 10k or 50k subscribers (of which we have a few), but
overall it's quite acceptable.

ab





Archive powered by MHonArc 2.6.19+.

Top of Page