This product provides support for email-commands. It does this by providing a function for processing commands (to check for a command in an email message), a way to register command processors, and the result enumeration for returning the result of a command.
Register command processors¶
The commands are named adaptors that implement the
interface. The name is the command-name in lower case. So
the command to unsubscribe someone from a group will have the
unsubscribe. The adaptor must
- Take the group in the
__init__()method (it adapts the group),
- Provide a
process()method that takes the email and browser-request as an argument.
I prefer to declare adaptors using ZCML. This will declare a
example. This command will be executed by
process_command() whenever the subject line of an email
message contains starts with
example (in upper or lower
case). The command itself is implemented by the
ExampleCommand class in the
example module in the
<adapter name="example" for="gs.group.base.interfaces.IGSGroupMarker" provides="gs.group.list.command.interfaces.IEmailCommand" factory=".example.ExampleCommand" />
example module would contain the
ExampleCommand class, which inherits from the abstract
base-class for commands.
from gs.group.list.command import CommandABC, CommandResult class ExampleCommand(CommandABC): def process(email, request): # TODO: Stuff return CommandResult.commandStop
request is passed in to the
process() method so the
class can issue email-notifications.