Mail-Decency
view release on metacpan or search on metacpan
lib/Mail/Decency/Policy/Throttle.pm view on Meta::CPAN
=cut
has default_limit_databases => ( is => 'rw', isa => 'ArrayRef[HashRef]', default => sub { [] } );
=head2 exception_database : HashRef
Exception from default values (eg per account, per sender_domain, whatever)
=cut
has exception_database => ( is => 'rw', isa => 'HashRef', default => sub { {} } );
=head2 used_databases : ArrayRef[Str]
Internal usage..
=cut
has used_databases => ( is => 'rw', isa => 'ArrayRef[Str]', default => sub { [] } );
=head2 use_accounts : Bool
Wheter accounts (see description) should be used or not (cost performance)
=cut
has use_accounts => ( is => 'rw', isa => 'Bool', default => 0 );
=head2 counter_increment : CodeRef
Internal usage..
=cut
has counter_increment => ( is => 'rw', isa => 'CodeRef' );
=head2 counter_read : CodeRef
Internal usage..
=cut
has counter_read => ( is => 'rw', isa => 'CodeRef' );
=head2 require_sasl_username : CodeRef
Enable throttle module only if sasl_username is given (this happens if the SMTP connection contains AUTH information.. )
=cut
has require_sasl_username => ( is => 'rw', isa => 'Bool', default => 0 );
=head2 schema_definition
Database ..
=cut
has schema_definition => ( is => 'ro', isa => 'HashRef[HashRef]', default => sub {
{
throttle => {
client_address => {
client_address => [ varchar => 39 ],
interval => 'integer',
maximum => 'integer',
account => [ varchar => 100 ],
-unique => [ 'client_address', 'interval' ]
},
sender_domain => {
sender_domain => [ varchar => 255 ],
interval => 'integer',
maximum => 'integer',
account => [ varchar => 100 ],
-unique => [ 'sender_domain', 'interval' ]
},
sender_address => {
sender_address => [ varchar => 255 ],
interval => 'integer',
maximum => 'integer',
account => [ varchar => 100 ],
-unique => [ 'sender_address', 'interval' ]
},
sasl_username => {
sasl_username => [ varchar => 255 ],
interval => 'integer',
maximum => 'integer',
account => [ varchar => 100 ],
-unique => [ 'sasl_username', 'interval' ]
},
recipient_domain => {
recipient_domain => [ varchar => 255 ],
interval => 'integer',
maximum => 'integer',
account => [ varchar => 100 ],
-unique => [ 'recipient_domain', 'interval' ]
},
recipient_address => {
recipient_address => [ varchar => 255 ],
interval => 'integer',
maximum => 'integer',
account => [ varchar => 100 ],
-unique => [ 'recipient_address', 'interval' ]
},
account => {
account => [ varchar => 100 ],
interval => 'integer',
maximum => 'integer',
account => [ varchar => 100 ],
-unique => [ 'account', 'interval' ]
},
}
};
} );
=head1 METHODS
( run in 0.902 second using v1.01-cache-2.11-cpan-39bf76dae61 )