DESCRIPTION¶
Following picture roughly describes interaction among several classes in
workflow of Sympa. For more details see documentation on each class.
Message processing¶
<<archived.pl>>
Archive => [ProcessArchive] => (list archive)
<<bounced.pl>>
Bounce => [ProcessBounce] => Tracking
<<bulk.pl>>
Outgoing => [ProcessOutgoing] => (Mailer)
<<sympa_automatic.pl>>
Automatic => [ProcessAutomatic] => Incoming
<<sympa_msg.pl>>
Digest::Collection => [ProcessDigest]
:
v
*1
+-> (reject or ignore)
/
+---> [DoCommand]
/ :
/ v
Incoming => [ProcessIncoming] *2
\ +-> (reject)
+-> [DoForward] => (Mailer) /
\ +-> [ToEditor] => Outgoing
+-> [DoMessage] /
\ /---> [ToHeld] => Held
*3 (CONFIRM) +-> [AuthorizeMessage]
: / \---> [ToModeration] => Mod.
v / \
Held => [ProcessHeld] ------+ \
+-> [DistributeMessage]
*3 (DISTRIBUTE) / \
(REJECT) +--> (reject) / \
: / / \
v / / \
Moderation => [ProcessModeration] / \
\ / \
+---------- + \
\
+-------------------------------------------+
\
[TransformIncoming]
<<wwsympa.fcgi>> \
[ToArchive] => Archive
(list archive) \
=> [ResendArchive] -- [TransformOutgoing] -+
\ \
[ToDigest] => Digest \
\ \
+---------------+-> [ToList] => Outgoing
+-> [TransformDigestFinal]
/ \
<<Template sending>> / +----------> [ToOutgoing] => Outgoing
/ /
(mail template) => [ProcessTemplate] ---------> [ToAlarm] => Alarm
/ \
^ +----------> [ToMailer] => (Mailer)
|
*1
Command processing¶
*2
<<sympa_msg.pl>> :
v
(message) => [ProcessMessage] --+ +-> (reject)
\ /
*3 (AUTH) \ /---> [ToAuth] => Auth
(DECL) +-> (decline) +-> [AuthorizeRequest]
: / / \---> [ToAuthOwner] => Auth
v / / \
Auth => [ProcessAuth] / \
\ / +-> [DispatchRequest]
+-----------+ \
/ (request handler)
<<wwsympa.fcgi, SOAP>> / :
/ v
Request::Collection / *3
=> [ProcessRequest]
Task processing¶
<<task_manager.pl>>
Task => [ProcessTask] => Task
Legend¶
- "ClassName"
- Spool class. Prefix "Sympa::Spool::" is
omitted.
- "Alarm"
- "Outgoing"
- "Tracking"
- Sympa::Alarm, Sympa::Bulk and Sympa::Tracking classes (they are named such
by historical reason).
- "[ClassName]"
- Workflow class. Prefix
"Sympa::Spindle::" is omitted.
- "(Mailer)"
- Sympa::Mailer class.
- "(list archive)"
- Sympa::Archive class.
- "(mail template)"
- Sympa::Message::Template class.
- "(message)"
- Sympa::Request::Message class.
- "(request handler)"
- A subclass of "Sympa::Request::Handler"
class.