forward_method in policy bank does'nt work
Mark Martinec
Mark.Martinec+amavis at ijs.si
Tue Sep 20 18:55:52 CEST 2011
Peter,
> I want to redirect all spam sent from a local address to a separate server.
> I use amavis 2.6.4 with a postfix (2.7.0) dual setup.
>
> I have a policy_bank defined as
>
> $policy_bank{'GARBAGE'} = {
> originating => 1,
> forward_method => ' smtp:[1.2.3.4]:25',
Leave out the space before smtp.
> .....
> };
> Where 1.2.3.4 is the IP of my server handling garbage.
>
> I use Amavis::Custom and if a certain conditions is meet I load this
> policy_bank
> [...]
> sub checks {
> Amavis::load_policy_bank( 'GARBAGE' );
> If the condition is meet I would expect the mail to be delivered to the
> 1.2.3.4 server at port 25. But this does'nt happen.
>
> What is wrong ? is'nt this possible or should the forward_method be a
> method defined in the postfix master.cf
This should work with amavisd 2.7.0, but unfortunately not with 2.6.*.
The reason is that a value of forward_method is copied to
$msginfo->delivery_method *before* checks are made, so when
your custom hook 'checks' is activated, it is too late - it does
replace the forward_method, but not replace its copy in delivery_method().
A workaround is for your custom hook to also explicitly replace the
delivery_method value when it loads a GARBAGE policy bank:
sub checks { # may be left out if not needed
my($self,$conn,$msginfo) = @_;
...
Amavis::load_policy_bank( 'GARBAGE' );
$msginfo->delivery_method('smtp:[1.2.3.4]:25');
...
Mark
More information about the amavis-users
mailing list