spamd
0.1.0
spamd
spamd.sh
spamd Settings
/pkg.php?xml=spamd.xml
spamd Whitelist
/pkg.php?xml=spamd_whitelist.xml
/usr/local/www/
0755
- http://www.pfsense.com/packages/config/spamd_rules.php
/usr/local/pkg/
0755
- http://www.pfsense.com/packages/config/spamd_whitelist.xml
['installedpackages']['spamd']['config']
Provider Name
providername
Description
providerdescription
Provider Name
providername
Enter the name of the source
30
input
Provider Type
providertype
Select the Provider Type
select
black
1
Provider Description
providerdescription
Enter the description for this item
input
30
Reject message
rejectmessage
Enter the message to display to emailing parties that are on this providers list
input
30
Provider Method
providermethod
Select the Provider Method
select
http
1
Provider URL or Filename
providerurl
Enter the URL to the provider.
3
40
textarea
function sync_package_spamd() {
conf_mount_rw();
config_lock();
global $config;
$fd = fopen("/usr/local/etc/spamd.conf","w");
/* all header */
fwrite($fd, "# this file was automatically generated by the pfSense\n");
fwrite($fd, "# package management system\n\n");
fwrite($fd, "all:\\\n\t:whitelist");
foreach($config['installedpackages']['spamd']['config'] as $spamd) {
fwrite($fd, ":" . rtrim($spamd['providername']));
}
fwrite($fd, ":\n\n# begin of whitelist\n");
fwrite($fd, "whitelist:\\\n");
fwrite($fd, "\t:white:\\\n");
fwrite($fd, "\t:file=/var/mail/whitelist.txt\n");
/* loop through each item and write out its configuration */
fwrite($fd, "\n# begin of user created entries\n");
if($config['installedpackages']['spamd']['config'] != "")
foreach($config['installedpackages']['spamd']['config'] as $spamd) {
fwrite($fd, rtrim($spamd['providername']) . ":\\\n");
fwrite($fd, "\t:" . rtrim($spamd['providertype']) . ":\\\n");
fwrite($fd, "\t:msg=\"" . rtrim($spamd['rejectmessage']) . "\":\\\n");
fwrite($fd, "\t:method=" . rtrim($spamd['providermethod']) . ":\\\n");
fwrite($fd, "\t:" . rtrim($spamd['providermethod']) . ":\\\n");
fwrite($fd, "\t:file=" . rtrim($spamd['providerurl']) . ":\n\n");
}
fclose($fd);
$fd = fopen("/var/mail/whitelist.txt","w");
if($config['installedpackages']['spamdwhitelist']['config'] != "")
foreach($config['installedpackages']['spamdwhitelist']['config'] as $spamd) {
fwrite($fd, $spamd['ip'] . "\n");
}
fclose($fd);
conf_mount_ro();
config_unlock();
restart_service("spamd");
}
sync_package_spamd();
sync_package_spamd();
system("touch /var/mail/whitelist.txt 2>/dev/null");
system("/usr/libexec/spamd-setup 2>/dev/null &");
system("/usr/libexec/spamlogd 2>/dev/null &");
$start = "/usr/local/sbin/spamd-setup &\n" .
"/usr/local/libexec/spamlogd &";
$stop = "/usr/bin/killall spamd-setup\n" .
"/usr/bin/killall spamlogd";
write_rcfile(array(
"file" => "spamd.sh",
"start" => $start,
"stop" => $stop
)
);
start_service("spamd");
unlink_if_exists("/usr/local/pkg/spamd.sh");
unlink_if_exists("/usr/local/pkg/pf/spamd_rules.php");
unlink_if_exists("/usr/local/www/spamd_rules.php");