Website-Icon .: blog cscholz.io :.

Spamassassin: uninitialized value $countries … RelayCountry.pm line 274

Seit einigen Tagen schmeißt mein Server regelmäßig einen Fehler bei der Aktualisierung der Spamassassin Regeln mit dem Hinweis auf die Datei RelayCountry.pm. Der Befehl, der dabei ausgeführt wird, ist:

test -e /usr/sbin/amavisd-new-cronjob && /usr/sbin/amavisd-new-cronjob sa-sync

Die Meldung dazu:

plugin: eval failed: Can't use an undefined value as a subroutine reference at /usr/share/perl5/Mail/SpamAssassin/Plugin/RelayCountry.pm line 219.
Use of uninitialized value $countries in split at /usr/share/perl5/Mail/SpamAssassin/Plugin/RelayCountry.pm line 274.

Lange Rede kurzer Sinn. Ich habe im August 2016 Spamassassin um ein Regelwerk erweitert, dass die GeoIP-Informationen von E-Mails zur Bewertung der Spam-Wahrscheinlichkeit mit einbezieht. Das dabei verwendete Plugin GeoIP (legacy) wird seit dem 01.04.2018 nicht mehr weiter entwickelt.
Laut der nachfolgenden Mailingliste ist der Bug, der zu dem obigen Fehler führt, bei den Entwicklern von Spamassassin bekannt und soll in Version 3.4.3 gefixt.

"[...] it's a bug in RelayCountry.pm that can be triggered only if GeoIP is < 1.39 (without ipv6 support)."

Quelle: https://lists.gt.net/spamassassin/users/212650#212650

Als Nachfolger für GeoIP (legacy) treten GeoIP2, IP::Country::Fast oder IP::Country::DB_File an. Um die Auswahl des zu verwendenden Plugins zu ermöglichen, wurden mit der Spamassassion Version 3.4.2 die Konfigurationsparameter country_db_type und country_db_path eingeführt.

The 'country_db_type' and 'country_db_path' options has been added to be able 
to choose in RelayCountry plugin between GeoIP legacy 
(discontinued from 04/01/2018), GeoIP2, IP::Country::Fast 
and IP::Country::DB_File.
GeoIP legacy is still the default option but it will be deprecated 
in future releases.

Quelle: https://svn.apache.org/repos/asf/spamassassin/branches/3.4/UPGRADE

Da bei Debian 9 Spamassassin 3.4.2 mitgeliefert wird, ist somit die Lösung, das Plugin Fast in der Detai /etc/spamassassin/local.cf zu verwenden.

# GeoIP Parameter
country_db_type Fast

Vertrauen ist gut, kontrolle ist besser. Vor Verwendung des Parameters:

$ spamassassin -D --lint
Nov 26 11:23:15.883 [25013] dbg: metadata: RelayCountry: IPv6 support not enabled, versions Geo::IP 1.39, GeoIP C API 1.4.7 required
Nov 26 11:23:15.883 [25013] warn: plugin: eval failed: Can't use an undefined value as a subroutine reference at /usr/share/perl5/Mail/SpamAssassin/Plugin/RelayCountry.pm line 219.

Nach dem setzten des Parameters:

$ spamassassin -D --lint
Nov 26 11:22:10.138 [24463] dbg: metadata: RelayCountry: Using database: IP::Country::Fast Wed May 15 17:29:48 2013

 

Die mobile Version verlassen