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/