Provided by: sympa_6.2.24~dfsg-1_amd64 bug

NAME

       Sympa::Message::Plugin - process hooks

SYNOPSIS

           Sympa::Message::Plugin::execute('post_archive', $message);

DESCRIPTION

       Sympa::Message::Plugin provides hook mechanism to intervene in processing by Sympa.  Each
       hook may modify objects (messages and so on) or may break ordinary processing.

       Notice: Hook mechanism is expreimental.  Module names and interfaces may be changed in the
       future.

   Methods
       execute ( HOOK_NAME, MESSAGE, [ KEY => VAL, ... ] )
           Process message hook.

   Hooks
       Currently, following hooks are supported:

       pre_distribute
           Message hook.  Message had been approved distribution (by scenario or by moderator),
           however, it has not been decorated (adding custom subject etc.) nor archived yet.

       post_archive
           Message hook.  Message had been archived, however, it has not been distributed to
           users including digest spool; message has not been signed nor encrypted (if
           necessary).

   How to add a hook to your Sympa
       First, write your hook module:

         package My::Hook;

         use constant gettext_id => 'My message hook';

         sub post_archive {
             my $module  = shift;    # module name: "My::Hook"
             my $name    = shift;    # handler name: "post_archive"
             my $message = shift;    # Message object
             my %options = @_;

             # Processing, possiblly changing $message...

             # Return suitable result.
             # If unrecoverable error occurred, you may return undef or simply die.
             return 1;
         }

         1;

       Then activate hook handler in your list config:

         message_hook
           post_archive My::Hook

SEE ALSO

       Sympa::Message::Plugin::FixEncoding - An example module for message hook.

HISTORY

       Sympa::Message::Plugin appeared on Sympa 6.2.  It was initially written by IKEDA Soji
       <ikeda@conversion.co.jp>.