Replying to an old thread, with some new information:

On Monday 05 October 2009 20:01:29 Stefan wrote:
> > I'm using SpamAssassin with the URICountry Plugin. Now I would like to
> > add a X-URI-Country: header to the scanned message. Therefore I added the
> > following lines to the URICountry.pm module:
> >
> >   # Build a string of all found countries and export it as a tag
> >   my $countries = "";
> >   foreach my $country (keys(%countries)) {
> >     $countries .= uc($country) ." ";
> >   }
> >   chop $countries;
> >   $opts->{permsgstatus}->set_tag("URICOUNTRY", $countries);


> >   package Amavis::Custom;
> >   [...]
> >   sub before_send {
> >     my($self,$conn,$msginfo) = @_;
> >     my($uri_country) = $msginfo->supplementary_info('URICOUNTRY');
> >     if (defined $uri_country && $uri_country ne '') {
> >         my($hdr_edits) = $msginfo->header_edits;
> >         my($all_local) = !grep { !$_->recip_is_local }
> >                                @{$msginfo-per_recip_data};
> >         $hdr_edits->add_header('X-URI-Countries',
> >           $uri_country)  if $all_local;
> >     }
> >   };
> >
> > I can use the URICOUNTRY tag with the command 'spamassassin' (e.g. in a
> > template like 30_text_de.cf). But amavisd doesn't add a header because
> > URICOUNTRY is empty (=""). Why doesn't amavisd see the content of
> > URICOUNTRY?

> The concept I like to use is the same as with the RelayCountry plugin.
> I guess the problem is that the RelayCountry plugin is collecting its data
> much earlier (in the sub function extract_metadata) as the URICountry
> plugin. The URICountry plugin is collecting its data in the sub function
> parsed_metadata. Both plugins set the tag in the parsed_metadata function.
> But only the RelayCountry plugin can create an additional header (with
> put_metadata) in the extract_metadata function.
> 
> So maybe the problem is that the plugin can't create an additional header
> and assign it to the tag. But on the other side is amavisd only evaluating
> the tag and not the header.
> 
> So, any ideas why amavisd can not read the content of the tag URICOUNTRY?

The $msginfo->supplementary_info gets filled in a sub call_spamassassin
from a list of 'interesting' tags. You need to add URICOUNTRY to that list:

        for my $t (qw(TESTS AUTOLEARN AUTOLEARNSCORE SC SCRULE SCTYPE
                      LANGUAGES RELAYCOUNTRY ASN ASNCIDR DCCB DCCR DCCREP
                      DKIMDOMAIN DKIMIDENTITY AWLSIGNERMEAN
                      CRM114STATUS CRM114SCORE CRM114CACHEID)) {
          $supplementary_info{$t} = $per_msg_status->get_tag($t);
        }


With the next release of amavisd, along with SpamAssassin 3.3.0, amavisd
will be able to 'see' added header fields as prepared by SpamAssassin
(through its 'add_header ... _URICOUNTRY_' config option),
and insert them into the mail header section, which will eliminate the
need to collect SA tags and pass them through the supplementary_info
mechanism.

  Mark

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
AMaViS-user mailing list
AMaViS-user@lists.sourceforge.net 
https://lists.sourceforge.net/lists/listinfo/amavis-user 
 AMaViS-FAQ:http://www.amavis.org/amavis-faq.php3 
 AMaViS-HowTos:http://www.amavis.org/howto/ 

Reply via email to