Sympa::Message::Plugin.3Sympa - Man Page

process hooks


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


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 experimental. Module names and interfaces may be changed in the future.


execute ( HOOK_NAME, MESSAGE, [ KEY => VAL, ... ] )

Process message hook.


Currently, following hooks are supported:


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.


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, possibly changing $message...
      # Return suitable result.
      # If unrecoverable error occurred, you may return undef or simply die.
      return 1;

Then activate hook handler in your list config:

    post_archive My::Hook

See Also

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


Sympa::Message::Plugin appeared on Sympa 6.2. It was initially written by IKEDA Soji <>.


2023-07-22 sympa 6.2.72