aboutsummaryrefslogtreecommitdiffstats
path: root/config/mailscanner
diff options
context:
space:
mode:
authorMarcello Coutinho <marcellocoutinho@gmail.com>2013-11-11 12:45:22 -0200
committerMarcello Coutinho <marcellocoutinho@gmail.com>2013-11-11 12:45:22 -0200
commit48c047241c2f5dfcfb5f58d7759ba8412f7b4830 (patch)
tree1fbf7a3f98363e6054b6a038d3b2ff37ab9d892a /config/mailscanner
parente476ea3d2721b69968752b9a4073c71cdfefbeb1 (diff)
downloadpfsense-packages-48c047241c2f5dfcfb5f58d7759ba8412f7b4830.tar.gz
pfsense-packages-48c047241c2f5dfcfb5f58d7759ba8412f7b4830.tar.bz2
pfsense-packages-48c047241c2f5dfcfb5f58d7759ba8412f7b4830.zip
mailscanner - fix service startup on 2.1 and improve gui info from text fields
Diffstat (limited to 'config/mailscanner')
-rw-r--r--config/mailscanner/mailscanner.conf.template16
-rw-r--r--config/mailscanner/mailscanner.inc178
-rw-r--r--config/mailscanner/mailscanner.xml11
-rw-r--r--config/mailscanner/mailscanner_antispam.xml49
-rw-r--r--config/mailscanner/mailscanner_antivirus.xml10
-rw-r--r--config/mailscanner/mailscanner_attachments.xml18
-rw-r--r--config/mailscanner/mailscanner_content.xml68
-rw-r--r--config/mailscanner/mailscanner_report.xml187
-rwxr-xr-xconfig/mailscanner/pkg_mailscanner.inc11
9 files changed, 384 insertions, 164 deletions
diff --git a/config/mailscanner/mailscanner.conf.template b/config/mailscanner/mailscanner.conf.template
index 06090be3..c801c5d6 100644
--- a/config/mailscanner/mailscanner.conf.template
+++ b/config/mailscanner/mailscanner.conf.template
@@ -3,17 +3,17 @@
$mc=<<<EOF
{$info}
# Configuration directory containing this file
-%etc-dir% = /usr/local/etc/MailScanner
+%etc-dir% = {$mlb}/etc/MailScanner
# Set the directory containing all the reports in the required language
-%report-dir% = /usr/local/share/MailScanner/reports/{$report_language}
+%report-dir% = {$mlb}/share/MailScanner/reports/{$report_language}
# Rulesets directory containing your ".rules" files
-%rules-dir% = /usr/local/etc/MailScanner/rules
+%rules-dir% = {$mlb}/etc/MailScanner/rules
# Configuration directory containing files related to MCP
# (Message Content Protection)
-%mcp-dir% = /usr/local/etc/MailScanner/mcp
+%mcp-dir% = {$mlb}/etc/MailScanner/mcp
#
# System settings
@@ -417,7 +417,7 @@ Log SpamAssassin Rule Actions = {$log_sa_rule_action}
SpamAssassin Temporary Dir = /var/spool/MailScanner/incoming/SpamAssassin-Temp
SpamAssassin User State Dir =
SpamAssassin Install Prefix =
-SpamAssassin Site Rules Dir = /usr/local/etc/mail/spamassassin
+SpamAssassin Site Rules Dir = {$mlb}/etc/mail/spamassassin
SpamAssassin Local Rules Dir =
SpamAssassin Local State Dir = # /var/lib/spamassassin
SpamAssassin Default Rules Dir =
@@ -469,7 +469,7 @@ Sender MCP Report = %report-dir%/sender.mcp.report.txt
Use Default Rules With Multiple Recipients = {$default_rule_multiple}
Read IP Address From Received Header = {$read_ipaddress}
Spam Score Number Format = {$spam_score_format}
-MailScanner Version Number = 4.83.5
+MailScanner Version Number = {$mailscanner_version}
SpamAssassin Cache Timings = {$cache_timings}
Debug = {$debug}
Debug SpamAssassin = {$debug_spam}
@@ -480,12 +480,12 @@ Deliver In Background = {$deliver_background}
Delivery Method = {$mailscanner['deliver_method']}
Split Exim Spool = {$split_exim_spool}
Lockfile Dir = /var/spool/MailScanner/incoming/Locks
-Custom Functions Dir = /usr/local/lib/MailScanner/MailScanner/CustomFunctions
+Custom Functions Dir = {$mlb}/lib/MailScanner/MailScanner/CustomFunctions
Lock Type =
Syslog Socket Type =
Automatic Syntax Check = {$syntax_check}
Minimum Code Status = {$mailscanner['minimum_code']}
-include /usr/local/etc/MailScanner/conf.d/*
+include {$mlb}/etc/MailScanner/conf.d/*
diff --git a/config/mailscanner/mailscanner.inc b/config/mailscanner/mailscanner.inc
index 1ba0a4ca..0b638166 100644
--- a/config/mailscanner/mailscanner.inc
+++ b/config/mailscanner/mailscanner.inc
@@ -27,7 +27,7 @@
POSSIBILITY OF SUCH DAMAGE.
*/
-
+$shortcut_section = "mailscanner";
require_once("util.inc");
require("globals.inc");
#require("guiconfig.inc");
@@ -101,6 +101,7 @@ function sync_package_mailscanner($via_rpc=false) {
$config['installedpackages']['mscontent']['config'][0]=array('checks'=>'DangerousContentScanning,UseStricterPhishingNet,HighlightPhishingFraud',
'iframe_tags'=>'disarm',
'form_tags'=>'disarm',
+ 'script_tags'=>'disarm',
'web_bugs'=>'disarm',
'codebase_tags'=>'disarm');
$load_samples++;
@@ -116,7 +117,7 @@ function sync_package_mailscanner($via_rpc=false) {
$report=$config['installedpackages']['msreport']['config'][0];
if (!is_array($config['installedpackages']['msantispam'])){
$config['installedpackages']['msantispam']['config'][0]=array( 'rblfeatures'=>'spam_checks',
- 'safeatures'=>'use_sa,sa_auto_whitelist,check_sa_if_on_spam_list,spam_score,cache_spamassassin_results,use_pyzor,use_razor,use_dcc,use_bayes,use_auto_learn_bayes',
+ 'safeatures'=>'use_sa,sa_auto_whitelist,check_sa_if_on_spam_list,spam_score,cache_spamassassin_results,use_razor,use_dcc,use_bayes,use_auto_learn_bayes',
'sa_score'=>'6',
'spam_actions'=>'deliver',
'hi_score'=>'20',
@@ -259,6 +260,7 @@ function sync_package_mailscanner($via_rpc=false) {
/*
Language Strings = %report-dir%/languages.conf
*/
+
#check files
$mailscanner_dir=MAILSCANNER_LOCALBASE ."/etc/MailScanner";
@@ -309,7 +311,8 @@ Language Strings = %report-dir%/languages.conf
$load_samples++;
}
- $report_dir=MAILSCANNER_LOCALBASE."/share/MailScanner/reports/".strtolower($report['language']);
+ //$report_dir=MAILSCANNER_LOCALBASE."/share/MailScanner/reports/".strtolower($report['language']);
+ $report_dir="/usr/local/share/MailScanner/reports/".strtolower($report['language']);
#CHECK REPORT FILES
$report_files= array('deletedbadcontent' => 'deleted.content.message.txt',
'deletedbadfilename' => 'deleted.filename.message.txt',
@@ -377,8 +380,18 @@ Phishing Safe Sites File = %etc-dir%/phishing.safe.sites.conf
Phishing Bad Sites File = %etc-dir%/phishing.bad.sites.conf
Country Sub-Domains List = %etc-dir%/country.domains.conf
*/
-
+ #get mailscanner version
+ $msc_bin=MAILSCANNER_LOCALBASE. "/sbin/mailscanner";
+ if (file_exists($msc_bin)){
+ $msc_bin_file=file_get_contents($msc_bin);
+ if (preg_match("/MailScannerVersion = '(\S+)'/",$msc_bin_file,$msv_matches))
+ $mailscanner_version=$msv_matches[1];
+ else
+ $mailscanner_version='4.83.5';
+ }
#create MailScanner.conf
+ $mlb=MAILSCANNER_LOCALBASE;
+
include("mailscanner.conf.template");
#write files
conf_mount_rw();
@@ -404,76 +417,77 @@ Country Sub-Domains List = %etc-dir%/country.domains.conf
#update spam.assassin.prefs.conf
$sa_temp=ms_text_area_decode($config['installedpackages']['msantispam']['config'][0]['sa_pref_file']);
- $pattern[0]='/#ifplugin/';
- $pattern[1]='/#pyzor_path/';
- $pattern[2]='/usr.bin.pyzor/';
- $pattern[3]='/#dcc_path/';
- $pattern[4]='/#endif/';
- $replacement[0]="ifplugin";
- $replacement[1]="pyzor_path";
- $replacement[2]="usr/local/bin/pyzor";
- $replacement[3]="dcc_path";
- $replacement[4]="endif";
+ $pattern[]='/#ifplugin/';
+ $pattern[]='/#dcc_path/';
+ $pattern[]='/#endif/';
+
+ $replacement[]="ifplugin";
+ $replacement[]="dcc_path";
+ $replacement[]="endif";
if (preg_match('/use_razor/',$antispam['safeatures'])){
- $pattern[5]='/\nuse_razor2\s+0/';
- $replacement[5]="\n".'# use_razor2 0';
+ $pattern[]='/\nuse_razor2\s+0/';
+ $replacement[]="\n".'# use_razor2 0';
}
else{
- $pattern[5]='/\n#\s+use_razor2\s+0/';
- $replacement[5]="\n".'use_razor2 0';
+ $pattern[]='/\n#\s+use_razor2\s+0/';
+ $replacement[]="\n".'use_razor2 0';
}
if (preg_match('/use_dcc/',$antispam['safeatures'])){
- $pattern[6]='/\nuse_dcc\s+0/';
- $replacement[6]="\n".'# use_dcc 0';
+ $pattern[]='/\nuse_dcc\s+0/';
+ $replacement[]="\n".'# use_dcc 0';
}
else{
- $pattern[6]='/\n#\s+use_dcc\s+0/';
- $replacement[6]="\n".'use_dcc 0';
+ $pattern[]='/\n#\s+use_dcc\s+0/';
+ $replacement[]="\n".'use_dcc 0';
}
if (preg_match('/use_pyzor/',$antispam['safeatures'])){
- $pattern[7]='/\nuse_pyzor\s+0/';
- $replacement[7]="\n".'# use_pyzor 0';
+ $pattern[]='/#pyzor_path/';
+ $pattern[]='/usr.bin.pyzor/';
+ $pattern[]='/\nuse_pyzor\s+0/';
+ $replacement[]="pyzor_path";
+ $replacement[]="usr/local/bin/pyzor";
+ $replacement[]="\n".'# use_pyzor 0';
}
else{
- $pattern[7]='/\n#\s+use_pyzor\s+0/';
- $replacement[7]="\n".'# use_pyzor 0';
+ $pattern[]='/\n#\s+use_pyzor\s+0/';
+ $replacement[]="\n".'# use_pyzor 0';
}
if (preg_match('/use_auto_learn_bayes/',$antispam['safeatures'])){
- $pattern[8]='/\nbayes_auto_learn\s+0/';
- $replacement[8]="\n".'# bayes_auto_learn 0';
+ $pattern[]='/\nbayes_auto_learn\s+0/';
+ $replacement[]="\n".'# bayes_auto_learn 0';
}
else{
- $pattern[8]='/\n#\s+bayes_auto_learn\s+0/';
- $replacement[8]="\n".'bayes_auto_learn 0';
+ $pattern[]='/\n#\s+bayes_auto_learn\s+0/';
+ $replacement[]="\n".'bayes_auto_learn 0';
}
if (preg_match('/use_bayes/',$antispam['safeatures'])){
- $pattern[9]='/\nuse_bayes\s+0/';
- $replacement[9]="\n".'# use_bayes 0';
+ $pattern[]='/\nuse_bayes\s+0/';
+ $replacement[]="\n".'# use_bayes 0';
}
else{
- $pattern[9]='/\n#\s+use_bayes\s+0/';
- $replacement[9]="\n".'use_bayes 0';
+ $pattern[]='/\n#\s+use_bayes\s+0/';
+ $replacement[]="\n".'use_bayes 0';
}
if (preg_match('/sa_auto_whitelist/',$antispam['safeatures'])){
- $pattern[10]='/\nuse_auto_whitelist\s+0/';
- $replacement[10]="\n".'# use_auto_whitelist 0';
+ $pattern[]='/\nuse_auto_whitelist\s+0/';
+ $replacement[]="\n".'# use_auto_whitelist 0';
}
else{
- $pattern[10]='/\n#\s*use_auto_whitelist 0/';
- $replacement[10]="\n".'use_auto_whitelist 0';
+ $pattern[]='/\n#\s*use_auto_whitelist 0/';
+ $replacement[]="\n".'use_auto_whitelist 0';
}
if ($antispam['rblchecks']){
- $pattern[11]='/\nskip_rbl_checks\s+1/';
- $replacement[11]="\n".'# skip_rbl_checks 1';
+ $pattern[]='/\nskip_rbl_checks\s+1/';
+ $replacement[]="\n".'# skip_rbl_checks 1';
}
else{
- $pattern[11]='/\n#\s+skip_rbl_checks\s+\d/';
- $replacement[11]="\n".'skip_rbl_checks 1';
+ $pattern[]='/\n#\s+skip_rbl_checks\s+\d/';
+ $replacement[]="\n".'skip_rbl_checks 1';
}
- $pattern[12]='/bayes_ignore_header ([a-zA-Z0-9_.-]+)MailScanner/';
- $replacement[12]="bayes_ignore_header ".($mailscanner['orgname']!=""?$mailscanner['orgname']:"pfsense")."-MailScanner";
- $pattern[13]='/envelope_sender_header X([a-zA-Z0-9_.-]+)MailScanner-From/';
- $replacement[13]="envelope_sender_header X-".($mailscanner['orgname']!=""?$mailscanner['orgname']:"pfsense")."-MailScanner-From";
+ $pattern[]='/bayes_ignore_header ([a-zA-Z0-9_.-]+)MailScanner/';
+ $replacement[]="bayes_ignore_header ".($mailscanner['orgname']!=""?$mailscanner['orgname']:"Pfsense")."-MailScanner";
+ $pattern[]='/envelope_sender_header X([a-zA-Z0-9_.-]+)MailScanner-From/';
+ $replacement[]="envelope_sender_header X-".($mailscanner['orgname']!=""?$mailscanner['orgname']:"Pfsense")."-MailScanner-From";
$sa_temp=preg_replace($pattern,$replacement,$sa_temp);
@@ -525,34 +539,24 @@ Country Sub-Domains List = %etc-dir%/country.domains.conf
unlink_if_exists($libexec_dir.'clamav-wrapper');
}
else{
- if (file_exists('/var/run/clamav/'))
- chown('/var/run/clamav/', 'postfix');
- if (file_exists('/var/log/clamav/'))
- chown('/var/log/clamav/', 'postfix');
- if (file_exists('/var/db/clamav/'))
- chown('/var/db/clamav/', 'postfix');
- if (file_exists('/var/db/clamav/bytecode.cld'))
- chown('/var/db/clamav/bytecode.cld', 'postfix');
- if (file_exists('/var/db/clamav/daily.cld'))
- chown('/var/db/clamav/daily.cld', 'postfix');
- if (file_exists('/var/db/clamav/main.cvd'))
- chown('/var/db/clamav/main.cvd', 'postfix');
- if (file_exists('/var/db/clamav/mirrors.dat'))
- chown('/var/db/clamav/mirrors.dat', 'postfix');
- if (file_exists('/var/log/clamav/clamd.log'))
- chown('/var/log/clamav/clamd.log', 'postfix');
- if (file_exists('/var/log/clamav/freshclam.log'))
- chown('/var/log/clamav/freshclam.log', 'postfix');
-
+ $av_dirs=array('run','log','db');
+ foreach ($av_dirs as $av_dir){
+ if (!is_dir("/var/$av_dir/clamav"))
+ mkdir("/var/$av_dir/clamav",0774,true);
+ chown("/var/$av_dir/clamav", 'postfix');
+ chgrp("/var/$av_dir/clamav", 'wheel');
+ }
+ $av_files=array('/var/db/clamav/daily.cld','/var/db/clamav/main.cvd','/var/db/clamav/mirrors.dat',
+ '/var/log/clamav/clamd.log','/var/log/clamav/freshclam.log','/var/db/clamav/bytecode.cld');
+ foreach ($av_files as $av_file){
+ if (file_exists($av_file))
+ chown($av_file, 'postfix');
+ }
copy($libexec_dir.'clamav-autoupdate.sample',$libexec_dir.'clamav-autoupdate');
chmod ($libexec_dir.'clamav-autoupdate',0755);
copy($libexec_dir.'clamav-wrapper.sample',$libexec_dir.'clamav-wrapper');
chmod ($libexec_dir.'clamav-autoupdate',0755);
- if (!file_exists('/var/db/clamav/main.cvd')){
- log_error('No clamav database found, running freshclam in background.');
- mwexec_bg(MAILSCANNER_LOCALBASE. '/bin/freshclam');
- }
-
+
#clamav-wrapper file
$cconf=$libexec_dir."clamav-wrapper";
if (file_exists($cconf)){
@@ -565,7 +569,7 @@ Country Sub-Domains List = %etc-dir%/country.domains.conf
#freshclam conf file
$cconf=MAILSCANNER_LOCALBASE. "/etc/freshclam.conf";
- if (file_exists($conf)){
+ if (file_exists($cconf)){
$cconf_file=file_get_contents($cconf);
if (preg_match('/DatabaseOwner clamav/',$cconf_file)){
$cconf_file=preg_replace("/DatabaseOwner clamav/","DatabaseOwner postfix",$cconf_file);
@@ -575,7 +579,7 @@ Country Sub-Domains List = %etc-dir%/country.domains.conf
#clamd conf file
$cconf=MAILSCANNER_LOCALBASE. "/etc/clamd.conf";
- if (file_exists($conf)){
+ if (file_exists($cconf)){
$cconf_file=file_get_contents($cconf);
if (preg_match('/User clamav/',$cconf_file)){
$cconf_file=preg_replace("/User clamav/","User postfix",$cconf_file);
@@ -616,6 +620,13 @@ Country Sub-Domains List = %etc-dir%/country.domains.conf
}
}
}
+
+ #check clamav database
+ if (!file_exists('/var/db/clamav/main.cvd')){
+ log_error('No clamav database found, running freshclam in background.');
+ mwexec_bg(MAILSCANNER_LOCALBASE. '/bin/freshclam --config-file='.MAILSCANNER_LOCALBASE.'/etc/freshclam.conf --user=root');
+ }
+
}
}
else{
@@ -660,7 +671,7 @@ Country Sub-Domains List = %etc-dir%/country.domains.conf
}
}
}
-
+
$script=MAILSCANNER_LOCALBASE. '/etc/rc.d/mailscanner';
#fix MIME::ToolUtils deprecated function and usecure dependency calls in /usr/local/sbin/mailscanner
@@ -670,20 +681,35 @@ Country Sub-Domains List = %etc-dir%/country.domains.conf
exec('find '.MAILSCANNER_LOCALBASE. '/lib/perl5/site_perl -name Df.pm',$find_out);
$perl_bin="perl";
foreach($find_out as $perl_dir){
- if (preg_match ('@usr/local/lib/perl5/site_perl/([.0-9]+)/mach/Filesys/Df.pm@',$perl_dir,$perl_match))
+ if (preg_match ('@/usr\S+lib/perl5/site_perl/([.0-9]+)/mach/Filesys/Df.pm@',$perl_dir,$perl_match))
$perl_bin.=$perl_match[1];
}
$cconf_file=file_get_contents($cconf);
- $pattern2[0]='@#!/usr.*bin/perl.*I@';
+ $pattern2[0]='@#!/usr\S+bin/perl.*I@';
$pattern2[1]='/\smy .current = config MIME::ToolUtils/';
$replacement2[0]='#!'.MAILSCANNER_LOCALBASE. "/bin/{$perl_bin} -U -I";
$replacement2[1]=' #my $current = config MIME::ToolUtils';
- if (preg_match('@#!/usr.*bin/perl.*I@',$cconf_file)){
+ if (preg_match('@#!/usr\S+bin/perl.*I@',$cconf_file)){
$cconf_file=preg_replace($pattern2,$replacement2,$cconf_file);
file_put_contents($cconf, $cconf_file, LOCK_EX);
}
}
+
+ #check spam assassin rules
+ $saupdate="/usr/local/bin/sa-update";
+ if (file_exists($saupdate)){
+ $rules_found=0;
+ if (file_exists("/var/db/spamassassin")){
+ foreach (glob("/var/db/spamassassin/*",GLOB_ONLYDIR) as $dirname)
+ $rules_found++;
+ }
+ if ($rules_found==0){
+ log_error("Mailscanner- No spamassassin rules found, forcing sa-update.");
+ mwexec($saupdate);
+ }
+ }
+
if (file_exists($script)){
$script_file=file_get_contents($script);
if (preg_match('/NO/',$script_file)){
diff --git a/config/mailscanner/mailscanner.xml b/config/mailscanner/mailscanner.xml
index 0e644196..05798a1e 100644
--- a/config/mailscanner/mailscanner.xml
+++ b/config/mailscanner/mailscanner.xml
@@ -9,7 +9,7 @@
/*
mailscanner.xml
part of the mailscaner package for pfSense
- Copyright (C) 2011 Marcello Coutinho
+ Copyright (C) 2011-2013 Marcello Coutinho
All rights reserved.
*/
/* ========================================================================== */
@@ -54,7 +54,7 @@
<service>
<name>mailscanner</name>
<rcfile>mailscanner</rcfile>
- <executable>perl5.12.4</executable>
+ <executable>perl5.14.2</executable>
<description>MailScanner</description>
</service>
<additional_files_needed>
@@ -112,6 +112,11 @@
<prefix>/usr/local/pkg/</prefix>
<chmod>0755</chmod>
</additional_files_needed>
+ <additional_files_needed>
+ <prefix>/usr/local/www/shortcuts/</prefix>
+ <chmod>0755</chmod>
+ <item>http://www.pfsense.org/packages/config/mailscanner/pkg_mailscanner.inc</item>
+ </additional_files_needed>
<tabs>
<tab>
<text>General</text>
@@ -228,7 +233,7 @@
<fielddescr>Logging</fielddescr>
<fieldname>syslog</fieldname>
<description>
- <![CDATA[Select virus scanner tests to enable. Mailscanner default options are in (&nbsp;).]]>
+ <![CDATA[Select logging options to enable. Mailscanner default options are in (&nbsp;).]]>
</description>
<type>select</type>
<options>
diff --git a/config/mailscanner/mailscanner_antispam.xml b/config/mailscanner/mailscanner_antispam.xml
index 652935f5..7f989765 100644
--- a/config/mailscanner/mailscanner_antispam.xml
+++ b/config/mailscanner/mailscanner_antispam.xml
@@ -9,7 +9,7 @@
/*
mailscanner_antispam.xml
part of the mailscanner package for pfSense
- Copyright (C) 2011 Marcello Coutinho
+ Copyright (C) 2011-2013 Marcello Coutinho
All rights reserved.
*/
/* ========================================================================== */
@@ -346,62 +346,93 @@
<size>5</size>
</field>
<field>
- <name>Antispam Files</name>
+ <name>spam.assassin.prefs.conf</name>
<type>listtopic</type>
</field>
<field>
<fielddescr>spam.assassin.prefs.conf</fielddescr>
<fieldname>sa_pref_file</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit spam.assassin.prefs.conf. Leave Blank to load sample file.]]></description>
<type>textarea</type>
- <cols>80</cols>
+ <cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
<field>
+ <name>spam.lists.conf</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>spam.lists.conf</fielddescr>
<fieldname>rbl_file</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit spam.lists.conf. Leave Blank to load sample file.<br>
<strong>Use this list only when not using postscreen RBL checks(postfix-forwareder package).</strong>]]></description>
<type>textarea</type>
- <cols>80</cols>
+ <cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
<field>
+ <name>bounce.rules</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>bounce.rules</fielddescr>
<fieldname>bounce</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit spam.assassin.prefs.conf. Leave Blank to load sample file.]]></description>
<type>textarea</type>
- <cols>80</cols>
+ <cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
<field>
+ <name>max.message.size.rules</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>max.message.size.rules</fielddescr>
<fieldname>max_message_size</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit spam.assassin.prefs.conf. Leave Blank to load sample file.]]></description>
<type>textarea</type>
- <cols>80</cols>
+ <cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
<field>
+ <name>spam.whitelist.rules</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>spam.whitelist.rules</fielddescr>
<fieldname>spam_whitelist</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit spam.assassin.prefs.conf. Leave Blank to load sample file.]]></description>
<type>textarea</type>
- <cols>80</cols>
+ <cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
-
+ <field>
+ <name>mcp.spam.assassin.prefs.conf</name>
+ <type>listtopic</type>
+ </field>
<field>
<fielddescr>mcp.spam.assassin.prefs.conf</fielddescr>
<fieldname>mcp_pref_file</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit mcp.spam.assassin.prefs.conf. Leave Blank to load sample file.]]></description>
<type>textarea</type>
- <cols>80</cols>
+ <cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
diff --git a/config/mailscanner/mailscanner_antivirus.xml b/config/mailscanner/mailscanner_antivirus.xml
index 4a3bfe6c..590a61f6 100644
--- a/config/mailscanner/mailscanner_antivirus.xml
+++ b/config/mailscanner/mailscanner_antivirus.xml
@@ -9,7 +9,7 @@
/*
mailscanner_antivirus.xml
part of the mailscaner package for pfSense
- Copyright (C) 2011 Marcello Coutinho
+ Copyright (C) 2011-2013 Marcello Coutinho
All rights reserved.
*/
/* ========================================================================== */
@@ -159,11 +159,17 @@
<size>30</size>
</field>
<field>
+ <name>Custom antivirus options</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Custom antivirus options</fielddescr>
<fieldname>custom</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Paste your custom mailscanner antivirus settings here.]]></description>
<type>textarea</type>
- <cols>60</cols>
+ <cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
diff --git a/config/mailscanner/mailscanner_attachments.xml b/config/mailscanner/mailscanner_attachments.xml
index 1b031466..e89fbd46 100644
--- a/config/mailscanner/mailscanner_attachments.xml
+++ b/config/mailscanner/mailscanner_attachments.xml
@@ -9,7 +9,7 @@
/*
mailscanner_attachments.xml
part of the mailscaner package for pfSense
- Copyright (C) 2011 Marcello Coutinho
+ Copyright (C) 2011-2013 Marcello Coutinho
All rights reserved.
*/
/* ========================================================================== */
@@ -174,24 +174,32 @@
<size>5</size>
</field>
<field>
- <name>Fileset rules</name>
+ <name>filename.rules.conf</name>
<type>listtopic</type>
</field>
<field>
<fielddescr>filename.rules.conf</fielddescr>
<fieldname>filename_rules</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit archives.filename.rules.conf file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
- <cols>85</cols>
+ <cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
- <field>
+ <field>
+ <name>filetypes.rules.conf</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>filetypes.rules.conf</fielddescr>
<fieldname>filetype_rules</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit archives.filetype.rules.conf file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
- <cols>85</cols>
+ <cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
diff --git a/config/mailscanner/mailscanner_content.xml b/config/mailscanner/mailscanner_content.xml
index ca79b07f..07342dce 100644
--- a/config/mailscanner/mailscanner_content.xml
+++ b/config/mailscanner/mailscanner_content.xml
@@ -9,7 +9,7 @@
/*
mailscanner_contents.xml
part of the mailscaner package for pfSense
- Copyright (C) 2011 Marcello Coutinho
+ Copyright (C) 2011-2013 Marcello Coutinho
All rights reserved.
*/
/* ========================================================================== */
@@ -114,13 +114,13 @@
<multiple/>
</field>
<field>
- <fielddescr>Allow IFrame Tags</fielddescr>
+ <fielddescr>IFrame Tags</fielddescr>
<fieldname>iframe_tags</fieldname>
<type>select</type>
<options>
- <option><name>disarm</name><value>disarm</value></option>
- <option><name>yes</name><value>yes</value></option>
- <option><name>no</name><value>no</value></option>
+ <option><name>Disarm</name><value>disarm</value></option>
+ <option><name>Allow</name><value>yes</value></option>
+ <option><name>Deny</name><value>no</value></option>
</options>
<description><![CDATA[Do you want to allow 'IFrame' tags in email messages?<br>
This is not a good idea as it allows various Microsoft Outlook security vulnerabilities to remain unprotected, but if you have a load of mailing lists sending them,
@@ -128,39 +128,39 @@
</description>
</field>
<field>
- <fielddescr>Allow Form Tags</fielddescr>
+ <fielddescr>Form Tags</fielddescr>
<fieldname>form_tags</fieldname>
<type>select</type>
<options>
<option><name>disarm</name><value>disarm</value></option>
- <option><name>yes</name><value>yes</value></option>
- <option><name>no</name><value>no</value></option>
+ <option><name>Allow</name><value>yes</value></option>
+ <option><name>Deny</name><value>no</value></option>
</options>
<description><![CDATA[Do you want to allow 'Form' tags in email messages?<br>
This is a bad idea as these are used as scams to pursuade people to part with credit card information and other personal data.]]>
</description>
</field>
<field>
- <fielddescr>Allow Script Tags</fielddescr>
+ <fielddescr>Script Tags</fielddescr>
<fieldname>script_tags</fieldname>
<type>select</type>
<options>
- <option><name>disarm</name><value>disarm</value></option>
- <option><name>yes</name><value>yes</value></option>
- <option><name>no</name><value>no</value></option>
+ <option><name>Disarm</name><value>disarm</value></option>
+ <option><name>Allow</name><value>yes</value></option>
+ <option><name>Deny</name><value>no</value></option>
</options>
<description><![CDATA[Do you want to allow 'Script' tags in email messages?<br>
This is a bad idea as these are used to exploit vulnerabilities in email applications and web browsers.]]>
</description>
</field>
<field>
- <fielddescr>Allow web bugs</fielddescr>
+ <fielddescr>Web bugs</fielddescr>
<fieldname>web_bugs</fieldname>
<type>select</type>
<options>
- <option><name>disarm</name><value>disarm</value></option>
- <option><name>yes</name><value>yes</value></option>
- <option><name>no</name><value>no</value></option>
+ <option><name>Disarm</name><value>disarm</value></option>
+ <option><name>Allow</name><value>yes</value></option>
+ <option><name>Deny</name><value>no</value></option>
</options>
<description><![CDATA[Do you want to allow 'Img' tags with very small images in email messages?<br>
This is a bad idea as these are used as 'web bugs' to find out if a message has been read.<br>
@@ -168,13 +168,13 @@
</description>
</field>
<field>
- <fielddescr>Allow Object Codebase Tags</fielddescr>
+ <fielddescr>Object Codebase Tags</fielddescr>
<fieldname>codebase_tags</fieldname>
<type>select</type>
<options>
<option><name>disarm</name><value>disarm</value></option>
- <option><name>yes</name><value>yes</value></option>
- <option><name>no</name><value>no</value></option>
+ <option><name>allow</name><value>yes</value></option>
+ <option><name>deny</name><value>no</value></option>
</options>
<description><![CDATA[Do you want to allow <strong>'Object Codebase=...' or 'Object Data=...'</strong> tags in email messages?<br>
This is a bad idea as it leaves you unprotected against various Microsoft-specific security vulnerabilities.<br>
@@ -182,33 +182,47 @@
</description>
</field>
<field>
- <name>Phishing files</name>
+ <name>phishing.safe.sites.conf</name>
<type>listtopic</type>
</field>
<field>
<fielddescr>phishing.safe.sites.conf</fielddescr>
<fieldname>phishing_safe</fieldname>
- <description><![CDATA[edit phishing.safe.sites.conf file here.<br>If you leave this field blank, it will load sample file.]]></description>
+ <dontdisplayname/>
+ <usecolspan2/>
+ <description><![CDATA[phishing.safe.sites.conf config file.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
- <cols>70</cols>
+ <cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
- <field>
+ <field>
+ <name>phishing.bad.sites.conf</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>phishing.bad.sites.conf</fielddescr>
<fieldname>phishing_bad</fieldname>
- <description><![CDATA[edit phishing.bad.sites.conf file here.<br>If you leave this field blank, it will load sample file.]]></description>
+ <dontdisplayname/>
+ <usecolspan2/>
+ <description><![CDATA[phishing.bad.sites.conf config file.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
- <cols>70</cols>
+ <cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
<field>
+ <name>country.domains.conf</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>country.domains.conf</fielddescr>
<fieldname>country_domains</fieldname>
- <description><![CDATA[edit country.domains.conf file here.<br>If you leave this field blank, it will load sample file.]]></description>
+ <dontdisplayname/>
+ <usecolspan2/>
+ <description><![CDATA[country.domains.conf config file.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
- <cols>70</cols>
+ <cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
diff --git a/config/mailscanner/mailscanner_report.xml b/config/mailscanner/mailscanner_report.xml
index 60e7385c..e12ed341 100644
--- a/config/mailscanner/mailscanner_report.xml
+++ b/config/mailscanner/mailscanner_report.xml
@@ -9,7 +9,7 @@
/*
mailscanner_report.xml
part of the mailscaner package for pfSense
- Copyright (C) 2011 Marcello Coutinho
+ Copyright (C) 2011-2013 Marcello Coutinho
All rights reserved.
*/
/* ========================================================================== */
@@ -90,6 +90,31 @@
<type>listtopic</type>
</field>
<field>
+ <fielddescr>Language</fielddescr>
+ <fieldname>language</fieldname>
+ <description>
+ <![CDATA[Select report language.]]>
+ </description>
+ <type>select</type>
+ <options>
+ <option><name>EN (Default)</name><value>en</value></option>
+ <option><name>CA</name><value>ca</value></option>
+ <option><name>CY+EN</name><value>cy+en</value></option>
+ <option><name>CZ</name><value>cz</value></option>
+ <option><name>DE</name><value>de</value></option>
+ <option><name>DK</name><value>dk</value></option>
+ <option><name>ES</name><value>es</value></option>
+ <option><name>FR</name><value>fr</value></option>
+ <option><name>HU</name><value>hu</value></option>
+ <option><name>IT</name><value>it</value></option>
+ <option><name>NL</name><value>nl</value></option>
+ <option><name>PT_BR</name><value>pt_br</value></option>
+ <option><name>RO</name><value>ro</value></option>
+ <option><name>SE</name><value>se</value></option>
+ <option><name>SK</name><value>sk</value></option>
+ </options>
+ </field>
+ <field>
<fielddescr>Reports</fielddescr>
<fieldname>features</fieldname>
<description>
@@ -177,46 +202,29 @@
<size>20</size>
</field>
<field>
- <name>Message Reports</name>
+ <name>Deleted Bad Content</name>
<type>listtopic</type>
</field>
<field>
- <fielddescr>Language</fielddescr>
- <fieldname>language</fieldname>
- <description>
- <![CDATA[Select report language.]]>
- </description>
- <type>select</type>
- <options>
- <option><name>EN (Default)</name><value>en</value></option>
- <option><name>CA</name><value>ca</value></option>
- <option><name>CY+EN</name><value>cy+en</value></option>
- <option><name>CZ</name><value>cz</value></option>
- <option><name>DE</name><value>de</value></option>
- <option><name>DK</name><value>dk</value></option>
- <option><name>ES</name><value>es</value></option>
- <option><name>FR</name><value>fr</value></option>
- <option><name>HU</name><value>hu</value></option>
- <option><name>IT</name><value>it</value></option>
- <option><name>NL</name><value>nl</value></option>
- <option><name>PT_BR</name><value>pt_br</value></option>
- <option><name>RO</name><value>ro</value></option>
- <option><name>SE</name><value>se</value></option>
- <option><name>SK</name><value>sk</value></option>
- </options>
- </field>
- <field>
<fielddescr>Deleted Bad Content</fielddescr>
<fieldname>deletedbadcontent</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit deleted.content.message.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
- <field>
+ <field>
+ <name>Deleted Bad Filename</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Deleted Bad Filename</fielddescr>
<fieldname>deletedbadfilename</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit deleted.filename.message.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
@@ -224,8 +232,14 @@
<encoding>base64</encoding>
</field>
<field>
+ <name>Deleted Virus</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Deleted Virus</fielddescr>
<fieldname>deletedvirus</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit deleted.virus.message.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
@@ -233,35 +247,59 @@
<encoding>base64</encoding>
</field>
<field>
+ <name>Deleted Size</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Deleted Size</fielddescr>
<fieldname>deletedsize</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit deleted.size.message.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
- <field>
+ <field>
+ <name>Stored Bad Content</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Stored Bad Content</fielddescr>
<fieldname>storedbadcontent</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit stored.content.message.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
- <field>
+ <field>
+ <name>Stored Bad Filename</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Stored Bad Filename</fielddescr>
<fieldname>storedbadfilename</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit stored.filename.message.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
- <field>
+ <field>
+ <name>Stored Virus</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Stored Virus</fielddescr>
<fieldname>storedvirus</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit stored.virus.message.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
@@ -269,8 +307,14 @@
<encoding>base64</encoding>
</field>
<field>
+ <name>Disinfected Report</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Disinfected Report</fielddescr>
<fieldname>disinfected</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit stored.size.message.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
@@ -278,8 +322,14 @@
<encoding>base64</encoding>
</field>
<field>
+ <name>Stored Size</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Stored Size</fielddescr>
<fieldname>storedsize</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit disinfected.report.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
@@ -287,8 +337,14 @@
<encoding>base64</encoding>
</field>
<field>
+ <name>Sender content</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Sender content</fielddescr>
<fieldname>sendercontent</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit sender.content.message.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
@@ -296,8 +352,14 @@
<encoding>base64</encoding>
</field>
<field>
+ <name>Sender Error</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Sender Error</fielddescr>
<fieldname>sendererror</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit sender.error.report.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
@@ -305,8 +367,14 @@
<encoding>base64</encoding>
</field>
<field>
+ <name>Sender Bad Filename</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Sender Bad Filename</fielddescr>
<fieldname>senderbadfilename</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit sender.filename.report.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
@@ -314,8 +382,14 @@
<encoding>base64</encoding>
</field>
<field>
+ <name>Sender Virus Report</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Sender Virus Report</fielddescr>
<fieldname>sendervirus</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit sender.virus.report.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
@@ -323,8 +397,14 @@
<encoding>base64</encoding>
</field>
<field>
+ <name>Sender Size Report</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Sender Size Report</fielddescr>
<fieldname>sendersize</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit sender.size.report.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
@@ -332,8 +412,14 @@
<encoding>base64</encoding>
</field>
<field>
+ <name>Sender Spam report</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Sender Spam report</fielddescr>
<fieldname>senderspam</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit sender.spam.report.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
@@ -341,8 +427,14 @@
<encoding>base64</encoding>
</field>
<field>
+ <name>Sender SPam RBL report</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Sender SPam RBL report</fielddescr>
<fieldname>senderrbl</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit sender.spam.rbl.report.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
@@ -350,8 +442,14 @@
<encoding>base64</encoding>
</field>
<field>
+ <name>Sender Spam SA report</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Sender Spam SA report</fielddescr>
<fieldname>sendersa</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit sender.spam.sa.report.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
@@ -359,18 +457,29 @@
<encoding>base64</encoding>
</field>
<field>
+ <name>Sender Spam MCP report</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Sender Spam MCP report</fielddescr>
<fieldname>sendermcp</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit sender.mcp.report.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
-
+ <field>
+ <name>Recipients Spam report</name>
+ <type>listtopic</type>
+ </field>
<field>
<fielddescr>Recipients Spam report</fielddescr>
<fieldname>recipientspam</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit recipient.spam.report.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
@@ -378,8 +487,14 @@
<encoding>base64</encoding>
</field>
<field>
+ <name>Recipients MCP report</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Recipients MCP report</fielddescr>
<fieldname>recipientmcp</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit recipient.mcp.report.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
@@ -387,16 +502,20 @@
<encoding>base64</encoding>
</field>
<field>
+ <name>Rejection Report</name>
+ <type>listtopic</type>
+ </field>
+ <field>
<fielddescr>Rejection Report</fielddescr>
<fieldname>rejection</fieldname>
+ <dontdisplayname/>
+ <usecolspan2/>
<description><![CDATA[Edit rejection.report.txt file here.<br>Leave this field blank to load sample file.]]></description>
<type>textarea</type>
<cols>90</cols>
<rows>15</rows>
<encoding>base64</encoding>
</field>
-
-
</fields>
<custom_php_install_command>
mailscanner_php_install_command();
diff --git a/config/mailscanner/pkg_mailscanner.inc b/config/mailscanner/pkg_mailscanner.inc
new file mode 100755
index 00000000..cbd83cf5
--- /dev/null
+++ b/config/mailscanner/pkg_mailscanner.inc
@@ -0,0 +1,11 @@
+<?php
+
+global $shortcuts;
+
+$shortcuts['mailscanner'] = array();
+$shortcuts['mailscanner']['main'] = "pkg_edit.php?xml=mailscanner.xml";
+$shortcuts['mailscanner']['log'] = "diag_logs.php";
+$shortcuts['mailscanner']['status'] = "status_services.php";
+$shortcuts['mailscanner']['service'] = "mailscanner";
+
+?>