<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://coolscript.net/index.php?action=history&amp;feed=atom&amp;title=GeoMailSearch</id>
	<title>GeoMailSearch - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://coolscript.net/index.php?action=history&amp;feed=atom&amp;title=GeoMailSearch"/>
	<link rel="alternate" type="text/html" href="https://coolscript.net/index.php?title=GeoMailSearch&amp;action=history"/>
	<updated>2026-06-02T15:06:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://coolscript.net/index.php?title=GeoMailSearch&amp;diff=1051&amp;oldid=prev</id>
		<title>Admin: /* Download GMS */</title>
		<link rel="alternate" type="text/html" href="https://coolscript.net/index.php?title=GeoMailSearch&amp;diff=1051&amp;oldid=prev"/>
		<updated>2025-10-23T19:04:11Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Download GMS&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:04, 23 October 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l349&quot;&gt;Line 349:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 349:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|style=&amp;quot;width:10%; vertical-align: top;&amp;quot;|&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|style=&amp;quot;width:10%; vertical-align: top;&amp;quot;|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Download the script&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Download the script&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:Download.png|60px|link=https://coolscript.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;org&lt;/del&gt;/download/scripts/gms.zip|Download]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:Download.png|60px|link=https://coolscript.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;net&lt;/ins&gt;/download/scripts/gms.zip|Download]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|style=&amp;quot;width:90%; vertical-align: top;&amp;quot;|&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|style=&amp;quot;width:90%; vertical-align: top;&amp;quot;|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://coolscript.net/index.php?title=GeoMailSearch&amp;diff=650&amp;oldid=prev</id>
		<title>Admin: /* Download GMS */</title>
		<link rel="alternate" type="text/html" href="https://coolscript.net/index.php?title=GeoMailSearch&amp;diff=650&amp;oldid=prev"/>
		<updated>2022-03-04T13:08:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Download GMS&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:08, 4 March 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l349&quot;&gt;Line 349:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 349:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|style=&amp;quot;width:10%; vertical-align: top;&amp;quot;|&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|style=&amp;quot;width:10%; vertical-align: top;&amp;quot;|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Download the script&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Download the script&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:Download.png|60px|link=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http&lt;/del&gt;://coolscript.org/download/scripts/gms.zip|Download]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:Download.png|60px|link=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https&lt;/ins&gt;://coolscript.org/download/scripts/gms.zip|Download]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|style=&amp;quot;width:90%; vertical-align: top;&amp;quot;|&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|style=&amp;quot;width:90%; vertical-align: top;&amp;quot;|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://coolscript.net/index.php?title=GeoMailSearch&amp;diff=631&amp;oldid=prev</id>
		<title>Admin: /* Download GMS */</title>
		<link rel="alternate" type="text/html" href="https://coolscript.net/index.php?title=GeoMailSearch&amp;diff=631&amp;oldid=prev"/>
		<updated>2022-02-23T15:51:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Download GMS&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:51, 23 February 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l349&quot;&gt;Line 349:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 349:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|style=&amp;quot;width:10%; vertical-align: top;&amp;quot;|&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|style=&amp;quot;width:10%; vertical-align: top;&amp;quot;|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Download the script&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Download the script&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:Download.png|60px|link=http://coolscript.org/download/gms.zip|Download]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:Download.png|60px|link=http://coolscript.org/download&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/scripts&lt;/ins&gt;/gms.zip|Download]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|style=&amp;quot;width:90%; vertical-align: top;&amp;quot;|&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|style=&amp;quot;width:90%; vertical-align: top;&amp;quot;|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://coolscript.net/index.php?title=GeoMailSearch&amp;diff=35&amp;oldid=prev</id>
		<title>Matthias: Created page with &quot;=About= GeoMailSearch is a plugin for [http://spamassassin.apache.org/ Spamassassin], build on [http://www.maxmind.com/en/opensource Maxmind],it can block mail sender by ip,&lt;b...&quot;</title>
		<link rel="alternate" type="text/html" href="https://coolscript.net/index.php?title=GeoMailSearch&amp;diff=35&amp;oldid=prev"/>
		<updated>2014-02-14T18:46:59Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;=About= GeoMailSearch is a plugin for [http://spamassassin.apache.org/ Spamassassin], build on [http://www.maxmind.com/en/opensource Maxmind],it can block mail sender by ip,&amp;lt;b...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=About=&lt;br /&gt;
GeoMailSearch is a plugin for [http://spamassassin.apache.org/ Spamassassin], build on [http://www.maxmind.com/en/opensource Maxmind],it can block mail sender by ip,&amp;lt;br&amp;gt;ranges of ip, countries or ASN and even geo data by latitude and longtiude.&amp;lt;br&amp;gt;GeoMailSearch is build on the SA [http://spamassassin.apache.org/full/3.1.x/doc/Mail_SpamAssassin_Plugin.html skeleton]&amp;lt;br&amp;gt;GeoMailSearch is written in Perl and runs on Linux.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
With GeoMailSearch you can: &amp;lt;br&amp;gt;&lt;br /&gt;
*Score for the email sender country&lt;br /&gt;
**Optional Score for the sender time (Office Hour)&lt;br /&gt;
Advanced:&lt;br /&gt;
*Score the email sender country (Array)&lt;br /&gt;
**Optional Score the sender time (Office Hour)&lt;br /&gt;
*Score the email ASN provider (Array)&lt;br /&gt;
**Optional Score the ASN provider (Office Hour)&lt;br /&gt;
*Score the email server Latitude/Longitude and define a radius around it (Array)&lt;br /&gt;
**Optional Score the server Latitude/Longitude (Office Hour)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Requirements (Dependency Tree)=&lt;br /&gt;
*Linux&lt;br /&gt;
**mySQL&lt;br /&gt;
**Perl&lt;br /&gt;
**Sendmail (or another, similar and functioning  MTA)&lt;br /&gt;
***Spamassassin&lt;br /&gt;
****GeoMailSearch&lt;br /&gt;
*****Maxmind GeoIP Database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
==Files==&lt;br /&gt;
Please get GeoMailSearch.pm (download link below) and copy it to the Perl/Spamassassin Plugin Directory, depending on your Linux distribution this might be: &lt;br /&gt;
 /usr/share/perl5/Mail/SpamAssassin/Plugin/&lt;br /&gt;
then check the permissions and give it a try by looking for error mesages , there should be none when running:&lt;br /&gt;
 root@myhost ~ # /usr/share/perl5/Mail/SpamAssassin/Plugin/GeoMailSearch.pl&lt;br /&gt;
&lt;br /&gt;
==Modules==&lt;br /&gt;
It might be required to install some more perl modules. In case, this is the list of modules being used:&lt;br /&gt;
&lt;br /&gt;
 use strict;&lt;br /&gt;
 package Mail::SpamAssassin::Plugin::GeoMailSearch;&lt;br /&gt;
 use Mail::SpamAssassin::Plugin;&lt;br /&gt;
 use Mail::SpamAssassin::Conf::Parser;&lt;br /&gt;
 use POSIX;	&lt;br /&gt;
 use DBI;&lt;br /&gt;
 use HTTP::Date qw/str2time/;&lt;br /&gt;
 use Math::Trig qw(deg2rad pi great_circle_distance);&lt;br /&gt;
 use Net::Syslog;&lt;br /&gt;
&lt;br /&gt;
==SQL==&lt;br /&gt;
This Plugin requires the geoip database on a mysql server, to load you may first create the database and then assign a user next.&lt;br /&gt;
&lt;br /&gt;
Please use the template &amp;#039;&amp;#039;&amp;#039;geoip.sql&amp;#039;&amp;#039;&amp;#039; from the download archive and run it with mysql.&amp;lt;br&amp;gt;&lt;br /&gt;
Create database:&lt;br /&gt;
 mysql -u myuser -p &amp;lt; geoip.sql&lt;br /&gt;
&lt;br /&gt;
Then create the user, for example &amp;#039;&amp;#039;&amp;#039;geouser&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
 mysql -u myuser -p &lt;br /&gt;
 GRANT ALL PRIVILEGES ON geoip.* TO &amp;#039;geouser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mypassword&amp;#039; WITH GRANT OPTION;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
There will be two places where the above account credentials are needed.&amp;lt;br&amp;gt;&lt;br /&gt;
Sample:&lt;br /&gt;
*/etc/spamassassin/yourconfig&lt;br /&gt;
*/mypath/gms-loader.xml&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
===Basic===&lt;br /&gt;
Spamassassin sample &amp;#039;&amp;#039;&amp;#039;/etc/spamassassin/local.cf&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
===Initialization===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Initialization:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 loadplugin     Mail::SpamAssassin::Plugin::GeoMailSearch&lt;br /&gt;
 header         GeoMailSearch eval:check_geomailsearch()&lt;br /&gt;
===Database Conection===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Database connection&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 geomailsearch_sql_database geoip&lt;br /&gt;
 geomailsearch_sql_server   127.0.0.1&lt;br /&gt;
 geomailsearch_sql_user     username&lt;br /&gt;
 geomailsearch_sql_pwd      pax-s-w-0r-d&lt;br /&gt;
&lt;br /&gt;
===Log Level===&lt;br /&gt;
Log level sample:&lt;br /&gt;
 geomailsearch_syslog    1&lt;br /&gt;
&lt;br /&gt;
Available levels:&lt;br /&gt;
*Level 0: No syslog&lt;br /&gt;
*Level 1: Full&lt;br /&gt;
*Level 2: Analyze&lt;br /&gt;
&lt;br /&gt;
===Basic Settings===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Basic Country Settings&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 geomailsearch_score  1.0&lt;br /&gt;
 geomailsearch_non_office_hours 20:00-07:00&lt;br /&gt;
 geomailsearch_non_business_day 1 &lt;br /&gt;
 geomailsearch_block_country  X1:X2:X3&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Description:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable &amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &amp;#039;&amp;#039;&amp;#039;local.cf&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Required&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Value&lt;br /&gt;
|-&lt;br /&gt;
| geomailsearch_score || Yes || Scoring values for spamassassin&lt;br /&gt;
|-&lt;br /&gt;
| geomailsearch_non_office_hours || Optional || TimeDiff, hh:mm-hh:mm&amp;lt;br&amp;gt;The time range of the NON office hour&amp;lt;br&amp;gt;Sample hours between 18:00 until the next day 08:00&amp;lt;br&amp;gt; 18:00-08:00&lt;br /&gt;
|-&lt;br /&gt;
| geomailsearch_non_business_day || Optional || Non business days (weekend)&amp;lt;br&amp;gt;If this value is set to 1 then the non office hours&amp;lt;br&amp;gt;gets overrules if the day is saturday or sunday.&lt;br /&gt;
|-&lt;br /&gt;
| geomailsearch_block_country || Yes || Array list of country codes separated by column&amp;lt;br&amp;gt;Sample for a single country code:&amp;lt;br&amp;gt;X1&amp;lt;br&amp;gt;Sample for a array of countries:&amp;lt;br&amp;gt;X1:X2:X3&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced===&lt;br /&gt;
====Advanced Country Score====&lt;br /&gt;
Advanced Country Block works as array, each set of element is separated by a pipe .&amp;lt;br&amp;gt;&lt;br /&gt;
Sample for 3 elements of rules:&lt;br /&gt;
 geomailsearch_advanced_score_country X1:X2,0.5,20:00-07:00|X3:X4,0.6,19:00-20:00|X5,0.7&lt;br /&gt;
The above sample has 3 rules:&amp;lt;br&amp;gt;&lt;br /&gt;
*Rule1: X1:X2,0.5,20:00-07:00&lt;br /&gt;
*Rule2: X3:X4,0.6,19:00-20:00&lt;br /&gt;
*Rule3: X5,0.7&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Each rule has 2 or 3 elements, first the country array, then the score and last a optional non office hour time range.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*Element1: Counry code, separated by column&lt;br /&gt;
*Element2: Score&lt;br /&gt;
*Element3: Optional non office hour time range&lt;br /&gt;
&lt;br /&gt;
The above sample has the following effective rules:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable &amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &amp;#039;&amp;#039;&amp;#039;local.cf&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Country&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Score&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Non office hour time range&lt;br /&gt;
|-&lt;br /&gt;
| X1 || 0.5 || 20:00-07:00&lt;br /&gt;
|-&lt;br /&gt;
| X2 || 0.5 || 20:00-07:00&lt;br /&gt;
|-&lt;br /&gt;
| X3 || 0.6 || 19:00-20:00&lt;br /&gt;
|-&lt;br /&gt;
| X4 || 0.6 || 19:00-20:00&lt;br /&gt;
|-&lt;br /&gt;
| X5 || 0.7 || None&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Advanced ASN Score====&lt;br /&gt;
Advanced ASN Block works as array, each set of element is separated by a pipe .&amp;lt;br&amp;gt;&lt;br /&gt;
Sample for 3 elements of rules:&lt;br /&gt;
 geomailsearch_advanced_score_asn  AS0000:AS0001,0.5,18:00-08:00|AS0003:AS0004,0.6,19:00-08:00|AS0005,0.7&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above sample has 3 rules:&amp;lt;br&amp;gt;&lt;br /&gt;
*Rule1: AS0001:AS0002,0.5,18:00-08:00&lt;br /&gt;
*Rule2: AS0003:AS0004,0.6,19:00-08:00&lt;br /&gt;
*Rule3: AS0005,0.7&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Each rule has 2 or 3 elements, first the asn array, then the score and last a optional non office hour time range.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*Element1: AS Number, separated by column&lt;br /&gt;
*Element2: Score&lt;br /&gt;
*Element3: Optional non office hour time range&lt;br /&gt;
&lt;br /&gt;
The above sample has the following effective rules:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable &amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &amp;#039;&amp;#039;&amp;#039;local.cf&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | AS Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Score&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Non office hour time range&lt;br /&gt;
|-&lt;br /&gt;
| AS0001 || 0.5 || 18:00-08:00&lt;br /&gt;
|-&lt;br /&gt;
| AS0002 || 0.5 || 18:00-08:00&lt;br /&gt;
|-&lt;br /&gt;
| AS0003 || 0.6 || 19:00-08:00&lt;br /&gt;
|-&lt;br /&gt;
| AS0004 || 0.6 || 19:00-08:00&lt;br /&gt;
|-&lt;br /&gt;
| AS0005 || 0.7 || None&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Advanced GEO Score====&lt;br /&gt;
Advanced GEO Block works as array, each set of element is separated by a pipe .&amp;lt;br&amp;gt;&lt;br /&gt;
Sample for 2 elements of rules:&lt;br /&gt;
 geomailsearch_radius_score 90.0,0.01,200,0.5,18:00-23:00|-90.0,0.01,300,0.6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above sample has 2 rules:&amp;lt;br&amp;gt;&lt;br /&gt;
*Rule1: 90.0,0.01,200,0.5,18:00-23:00&lt;br /&gt;
*Rule2: -90.0,0.01,300,0.6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Each rule has 4 or 5 elements, first the geo data (latitude/longitude) array, then the search radius followed by the score and last a optional non office hour time range.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*Element1: Latitude&lt;br /&gt;
*Element2: Longitude&lt;br /&gt;
*Element4: Radius (KM)&lt;br /&gt;
*Element4: Score&lt;br /&gt;
*Element5: Optional non office hour range&lt;br /&gt;
&lt;br /&gt;
The above sample has the following effective rules:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable &amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &amp;#039;&amp;#039;&amp;#039;local.cf&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Latitude&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Longitude&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Radius&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Score&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Optional non office hour range&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Info&lt;br /&gt;
|-&lt;br /&gt;
| 90.0 || 0.01 || 200 || 0.5 || 18:00-08:00 || This is the South Pole :-)&lt;br /&gt;
|-&lt;br /&gt;
| -90.0 || 0.01 || 300 || 0.6 || None  || This is the North Pole :-)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Configure Syslog==&lt;br /&gt;
If you use syslog then please make sure your rsyslog daemon has udp logging enabled on 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
*/etc/rsyslog.conf&lt;br /&gt;
 $ModLoad imudp&lt;br /&gt;
 $UDPServerRun 514&lt;br /&gt;
&lt;br /&gt;
==GMS-LOADER==&lt;br /&gt;
The GeoMailSearch loader takes care of downloading the recent maxmind database, it alos insert the data into the mysql server.&amp;lt;br&amp;gt;&lt;br /&gt;
The GMS loader is using a xml configuration file for the settings.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Sample&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;CONFIG&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Switch on or off (1/0) to support maintenance of the particular  list/database --&amp;gt;&lt;br /&gt;
 &amp;lt;HTTP_Maintain&lt;br /&gt;
  IPLIST=&amp;quot;1&amp;quot;&lt;br /&gt;
  ASNLIST=&amp;quot;1&amp;quot;&lt;br /&gt;
  CITYLIST=&amp;quot;0&amp;quot;&lt;br /&gt;
  /&amp;gt;   &lt;br /&gt;
  &amp;lt;HTTP_Download&lt;br /&gt;
   IPLIST=&amp;quot;http://geolite.maxmind.com/download/geoip/database/GeoLiteCity_CSV/GeoLiteCity-latest.zip&amp;quot;&lt;br /&gt;
   ASNLIST=&amp;quot;http://download.maxmind.com/download/geoip/database/asnum/GeoIPASNum2.zip&amp;quot;&lt;br /&gt;
   CITYLIST=&amp;quot;http://download.maxmind.com/download/worldcities/worldcitiespop.txt.gz&amp;quot;&lt;br /&gt;
  /&amp;gt;   &lt;br /&gt;
  &amp;lt;!-- DBConnection data which you need to set --&amp;gt;&lt;br /&gt;
  &amp;lt;GeoDatabase&lt;br /&gt;
 	Database = &amp;quot;geoip&amp;quot;&lt;br /&gt;
 	Server = &amp;quot;localhost&amp;quot;&lt;br /&gt;
 	Username = &amp;quot;geouser&amp;quot;&lt;br /&gt;
 	Password = &amp;quot;xxxx&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;System&lt;br /&gt;
 	SyslogIP=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
 	DeleteTempDataOnStartup=&amp;quot;1&amp;quot;&lt;br /&gt;
 	DeleteTempDataOnExit=&amp;quot;1&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
 &amp;lt;/CONFIG&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable &amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &amp;#039;&amp;#039;&amp;#039;HTTP_Maintain&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Attribute&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| IPLIST || Boolean || Download and maintain the ip list&lt;br /&gt;
|-&lt;br /&gt;
| ASNLIST || Boolean || Download and maintain the ASN list&lt;br /&gt;
|-&lt;br /&gt;
| CITYLIST || Boolean || Download and maintain the City list&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039; Downloading the City List is nthat much often required, maybe once a year.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable &amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &amp;#039;&amp;#039;&amp;#039;HTTP_Download&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Attribute&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Value&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| IPLIST || Boolean || URL to the list&lt;br /&gt;
|-&lt;br /&gt;
| ASNLIST || Boolean || URL to the list&lt;br /&gt;
|-&lt;br /&gt;
| CITYLIST || Boolean || URL to the list&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable &amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &amp;#039;&amp;#039;&amp;#039;GeoDatabase&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Attribute&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| Database || mysql database&lt;br /&gt;
|-&lt;br /&gt;
| Server || mysql server name&lt;br /&gt;
|-&lt;br /&gt;
| Username || mysql username&lt;br /&gt;
|-&lt;br /&gt;
| Password || mysql password &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable &amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &amp;#039;&amp;#039;&amp;#039;System&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Attribute&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| SyslogIP || ip address of your syslog server, leave empty to disable&lt;br /&gt;
|-&lt;br /&gt;
| DeleteTempDataOnStartup || delete temporary download data at startup&lt;br /&gt;
|-&lt;br /&gt;
| DeleteTempDataOnExit || delete temporary download data at startup&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GMS-LOADER CRON===&lt;br /&gt;
Cron sample:&lt;br /&gt;
&lt;br /&gt;
 #m  h dom  mon dow   command&lt;br /&gt;
  0  1 5    *   *     (cd /usr/local/gms-loader/; ./gms-loader.pl)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Download GMS=&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| style=&amp;quot;width: 70%;&amp;quot;&lt;br /&gt;
|style=&amp;quot;width:10%; vertical-align: top;&amp;quot;|&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Download the script&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Download.png|60px|link=http://coolscript.org/download/gms.zip|Download]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|style=&amp;quot;width:90%; vertical-align: top;&amp;quot;|&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Matthias</name></author>
	</entry>
</feed>