Subject: Activation points and callout modes

From: "Martin Stecher" <[email-masked]>
Date: Fri, 28 Jan 2005 20:25:36 +0100

Hi,

there has been a lot of discussion back and forth on activation points
and callout modes. But it became quiet last days and we have no consensus
yet I think.

I try to summarize and argue again why some combinations are either
unneeded or not in the agenda's focus. Maybe this helps a little further.

From what we collected in the discussion so far I could see
four theoretical activation points:

  1. Receiving email
     Do a SMTP dialog with the peer, receiving email from it,
     usually storing the emails in a queue and maybe sending on later
     
  2. Stored email in queue
     Operate on an email that has been received earlier. Their is
     no current SMTP dialog going on
     
  3. Sending email
     Do a SMTP dialog with a peer, sending email to it.
     
  4. Proxy (receive and forward)
     Having two SMTP dialogs at the same time. Mostly forwarding
     commands and replies; often no own email queue
  
In addition to that there are four modes

  A. SMTP command modification
     The command is modified by the callout server
     
  B. SMTP command satisfaction
     Callout server responds with a SMTP reply (usually an error
     message).
     
  C. SMTP reply modification
     The SMTP reply is modified by the callout server
     
  D. Email message body modification

Do we need all these and all combinations?
I don't think so:

Re 2: Working on stored emails has more to do with a MIME profile for
OCP than with a SMTP profile. It only operates on the message body
anyway as there is no SMTP dialog going on.
Certainly you could use an OCP client and pretend a SMTP dialog in order
to get a callout server to work on a stored email.
But the more natural profile is OCP/MIME and not OCP/SMTP.

Re C: SMTP reply modification seems to make sense for
    - reply logging (so no real modification)
    - At activation point 4, when commands and replies are proxied
    
Re D: When part of OCP/SMTP (not OCP/MIME or alike) this can be
seen as command modification, i.e. it falls back to mode A.

Re 3: Tony and jfcm don't see a use case for this. But most use
cases listed so far do either work at activation points 1 or 3.
There might even be specific callout services that make much more
sense when sending the email (for example: add a footer to the email
that contains a current time stamp, whether condidition, stock price, ...)
Or there might be a corporate email gateway that uses SMTP outbound and
wants to do filtering there but emails are not delivered to that device
via SMTP but some other mail protocol, so that there is no activation
point 1 in the authorotive domain.

In my opinion, activation points 1 and 3 are very similar, make both sense
and don't cost more to be handled both.

Point 4 is special and opens a chance for mode C. (4A and 4B are the same
as 1A and 1B). But the whole scenario becomes more complex. Most use cases
can be done without this. Hilarie sees them as very important.

So my candidates are:
  Mandantory:
    1A  1B
    3A  3B
  Optional:
    4C
    
All other combinations are unneeded or out of focus.

Regards
Martin

---

From: Tony Finch <[email-masked]>
Date: Mon, 31 Jan 2005 09:45:24 +0000

> But the more natural profile is OCP/MIME and not OCP/SMTP.

It's often useful to be able to use envelope information to filter
messages after reception, and this information is often not available in
the message data. For example, you might want to key the filtering based
on the message recipient(s). The OCP/MIME profile should allow for this if
the SMTP one does not.

> cases listed so far do either work at activation points 1 or 3.

1 and 3 are special cases of 4. 1 is just a 4 immediately before the
server-SMTP on the same machine; similarly 3 is just a 4 immediately after
the client-SMTP on the same machine.

Tony.
-- 
f.a.n.finch  <[email-masked]>  http://dotat.at/
FAEROES: NORTHWEST 5 TO 7, OCCASIONALLY VARIABLE 3 OR 4 FOR A TIME. RAIN AT
TIMES. MODERATE OR GOOD.

---

From: "The Purple Streak, Hilarie Orman" <[email-masked]>
Date: Mon, 31 Jan 2005 18:50:42 -0700

Go with 1A and 1B as MANDATORY.  Those have always made sense.  Don't
have anything OPTIONAL; if their importance becomes obvious later then
they can be added as extensions.

I don't see how D (email body modification) "falls back" to A (command
modification), but as long as it can be done, I don't care what letter
gets assigned to it.

I'd not thought that the OPES processor would be maintaining queues,
but if implementors think that's the way they want to do it, that's
fine.  If the queues were maintained by the callout server, then
the difference between operating on SMTP vs. stored data would
be irrelevant.

Hilarie