# SPDX-License-Identifier: GPL-2.0-or-later package Amavis::Custom; # MAIL PROCESSING SEQUENCE: # child process initialization # loop for each mail: # - receive mail, parse and make available some basic information # * custom hook: new() - may inspect info, may load policy banks # - mail checking and collecting results # * custom hook: checks() - may inspect or modify checking results # - deciding mail fate (lookup on *_lovers, thresholds, ...) # - quarantining # - sending notifications (to admin and recips) # * custom hook: before_send() - may send other notif, quarantine, modify mail # - forwarding (unless blocked) # * custom hook: after_send() - may suppress DSN, may send reports, quarantine # - sending delivery status notification (if needed) # - issue main log entry, manage statistics (timing, counters, nanny) # * custom hook: mail_done() - may inspect results # endloop after $max_requests or earlier use strict; use re 'taint'; sub new { my($class,$conn,$msginfo) = @_; undef } sub checks { my($self,$conn,$msginfo) = @_; undef } sub before_send { my($self,$conn,$msginfo) = @_; undef } sub after_send { my($self,$conn,$msginfo) = @_; undef } sub mail_done { my($self,$conn,$msginfo) = @_; undef } 1;