Provided by: sympa_6.2.70~dfsg-2_amd64 bug

NAME

       Sympa::Spindle::ProcessIncoming - Workflow of processing incoming messages

SYNOPSIS

         use Sympa::Spindle::ProcessIncoming;

         my $spindle = Sympa::Spindle::ProcessIncoming->new;
         $spindle->spin;

DESCRIPTION

       Sympa::Spindle::ProcessIncoming defines workflow to process incoming messages.

       When spin() method is invoked, it reads the messages in incoming spool and rejects, quarantines or
       modifies them.  Processing are done in the following order:

       •   Checks  if message has message ID and sender, and if not, quarantines it.  Because such messages will
           be source of various troubles.

       •   Checks if robot which message is bound for exists, and if not, rejects it.

       •   Checks spam status, DKIM signature and S/MIME signature, and decrypts message if possible.  Result of
           these checks are stored in message object and used in succeeding process.

       •   If message is bound for the list, checks if the list exists, and if not, rejects it.

       •   Loop prevention.  If loop is detected, ignores message.

       •   Virus checking, if enabled by configuration.   And  if  malware  is  detected,  rejects  or  discards
           message.

       •   Splices  message to appropriate class according to the type of message: Sympa::Spindle::DoCommand for
           command    message;    Sympa::Spindle::DoForward    for    message    bound    for     administrator;
           Sympa::Spindle::DoMessage for ordinal post.

       Order to process messages in source spool are controlled by modification time of files and delivery date.
       Some messages are skipped according to these priorities (See Sympa::Spool::Incoming):

       •   Messages with lowest priority ("z" or "Z") are skipped.

       •   Messages  with  possibly  higher  priority  are chosen.  This is done by skipping messages with lower
           priority than those already found.

   Public methods
       See also "Public methods" in Sympa::Spindle.

       new ( [ keepcopy => $directory ], [ lang => $lang ], [ log_level => $level ], [ log_smtp => 0|1 ] )
       spin ( )
           new() may take following options:

           keepcopy => $directory
               spin() keeps copy of successfully processed messages in $directory.

           lang => $lang
               Overwrites lang parameter in configuration.

           log_level => $level
               Overwrites log_level parameter in configuration.

           log_smtp => 0|1
               Overwrites log_smtp parameter in configuration.

   Properties
       See also "Properties" in Sympa::Spindle.

       {distaff}
           Instance of Sympa::Spool::Incoming class.

SEE ALSO

       Sympa::Message,       Sympa::Spindle,        Sympa::Spindle::DoCommand,        Sympa::Spindle::DoForward,
       Sympa::Spindle::DoMessage, Sympa::Spool::Incoming.

HISTORY

       Sympa::Spindle::ProcessIncoming appeared on Sympa 6.2.13.

6.2.70                                             2023-01-26            Sympa::Spindle::ProcessIncoming(3Sympa)