I assume you meant to CC the list originally, I've added it :)

>> Could you show some code examples?
>
> not immediately, but sure
>
>> What do you do with the queue
>> plugin(s) if recipients ended up having different headers or bodies due
>> to
>> tagging etc.?
>
> Advenge only deals with deliver/defer with some fanciness on the defer
> side because the bounce message asks for some grease.

That makes the problem simpler but may be an incomplete solution for some.
 If we wanted to punt on the problem in mainline QP for a while, I suppose
plugins could just only ever modify the global body and avoid or
generalize any modifications that wanted to be different per-recipient. 
But again this is extra burden on the plugins

>>> Per-recipient
>>> features can be provided as a layer consisting of coordinating
>>> handlers for existing hooks, the most that needs to be done in my
>>> opinion is perhaps to establish a registry of name spaces in the
>>> existing per-message notes data, to prevent different plugins from
>>> clobbering e/o's data.
>>
>> Is this still necessary if Qpsmtpd::Address::notes() exists?
>
> Is that a persistent data structure keyed on address?

Well it's persistent data stored in the Qpsmtpd::Address object itself:

sub notes { # in Qpsmtpd::Address.pm
  my ($self,$key) = (shift,shift);
  # Check for any additional arguments passed by the caller -- including
undef
  return $self->{_notes}->{$key} unless @_;
  return $self->{_notes}->{$key} = shift;
}

I submitted that patch a while ago and I think it was accepted.

> What's efolder.net?

My new employer (it used to be @nmgi.com).  They bought DoubleCheck and
all its IP, infrastructure, and employees from Network Management Group. 
Their own product is a cloud backup solution, at some point we'll probably
be working on email archiving integrated with that.  It was really a nice
deal, since the switch I get to work at home and I have a new awesome boss
:)

-Jared

Reply via email to