This is a very simple page for remote viewing and editing of your SpamFilter.ini and related .txt files. It will create a backup of your current file when you save any changes, it will also show you a history of any changes so you may view any of the old settings and copy them. It is best to run this on an authenticated web site, with appropriate permissions set on the files.
To Install:
- Copy the asp code below and create SpamConfig.asp on your webserver
- Create the directory ..\Spamfilter\OldSettings, for backups and logs in your Spamfilter installation directory
- Modify root paths as desired, default = C:\Program files\Spamfilter...
*code below, copy and paste into - SpamConfig.asp*
<html>
<body>
<%
' USE AT YOUR OWN RISK. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANY CONTRIBUTOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
' Intended use:
' This asp page is designed to edit SpamFilter.ini and any .txt files located in the SpamFilter directory, it also keeps a running backup and log of any changes made through this page.
' Additional Information:
' Highly recommended to only use this page on a website with authentication enabled, and applicable file security set appropriately to authorized users; i.e. WWWUSER should have not access to your SpamFilter directory.
' Default root paths are hard coded here for additional security, this should only allow .txt files and SpamFilter.ini in that directory to be modified.
' dirbackup is used to keep an archive of any changes made through this asp page (default setting requires the creation of the a folder OldSettings in the Spamfilter installation directory)
' History of any changes is also kept in the dirbackup folder by adding ".log" to the end of the edited file, with links to display the backupfile.
dirspam="C:\Program Files\SpamFilter\"
dirbackup="C:\Program Files\SpamFilter\OldSettings\"
filespam = "SpamFilter.ini"
' check if file was carried over from form, if not check parameter sent to asp with ?file=, if still not found use SpamFilter.ini from above
fileedit = request.form("fileedit")
if fileedit="" then
fileedit = request.querystring("file")
end if
if fileedit = "" then
fileedit = filespam
else
if (right(fileedit,4)<>".txt") and (fileedit <> filespam) then
fileedit = fileedit & ".txt" 'allow only .txt and spamfilter.ini edits
end if
end if
set fs=Server.CreateObject("Scripting.FileSystemObject")
' Check if a showbackup file was request with showbackup=(backupfile)
showbackup=request.querystring("showbackup")
if showbackup<>"" then
if fs.FileExists(dirbackup & showbackup) then
' read backup file
set FName=fs.OpenTextFile(dirbackup & showbackup,1, False , -2)
bkupContents = FName.ReadAll
FName.Close
end if
end if
if request.form("editing")="true" then
Contents = request.form("Contents")
backupfile = "SFBU-" & year(now()) & right("0" & month(now()),2) & right("0" & day(now()),2) & "-" & right("0" & hour(now()),2) & right("0" & minute(now()),2) & right("0" & second(now()),2) & "-"& fileedit
'backup original file if it exists
if fs.FileExists(dirspam & fileedit) then
' read original file
set FName=fs.OpenTextFile(dirspam & fileedit,1, False , -2)
bkupContents = FName.ReadAll
FName.Close
' write changes
set FName=fs.OpenTextFile(dirbackup & backupfile,2,true)
FName.writeline bkupContents
FName.Close
response.write("File Backed up to:" & dirbackup & backupfile & "<br>")
'write out html log of edits
set FName=fs.OpenTextFile(dirbackup & fileedit & ".log",8,true)
htmlline="<a href=Spamconfig.asp?file=" & fileedit & "&showbackup=" & backupfile & ">" & backupfile &"</a><br>" & vbcrlf
FName.writeline htmlLine
FName.Close
end if
' write out the changes to the file
set FName=fs.OpenTextFile(dirspam & fileedit,2,true)
FName.writeline Contents
FName.Close
response.write("File Saved:" & dirspam & fileedit)
else
'read file
if fs.FileExists(dirspam & fileedit) then
set FName=fs.OpenTextFile(dirspam & fileedit,1, False , -2)
Contents = FName.ReadAll
FName.Close
else
response.write("New File:" & dirspam & fileedit)
end if
end if
%>
<form method="POST" action="SpamConfig.asp">
<input type=hidden name="editing" value="true">
<input type=hidden name="fileedit" value="<%=fileedit%>">
<table border="0" cellpadding="0" cellspacing="0" width="780">
<tr><td><%=fileedit%></td>
<% if showbackup<>"" then %>
<td> <%=showbackup%> </td>
<% end if %>
</tr>
<% if showbackup<>"" then %>
<tr>
<td>
<textarea rows="44" name="Contents" cols="50"><%=contents%></textarea>
</td>
<td>
<textarea rows="44" name="Contents" cols="50" readonly="true"><%=bkupContents%></textarea>
</td>
</tr>
<% else %>
<tr>
<td>
<textarea rows="44" name="Contents" cols="100"><%=contents%></textarea>
</td>
</tr>
<% end if %>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="380">
<tr>
<td width="278"><p><input type="submit" value="Back" name="B1" onclick="javascript:history.back()"> </td>
<td width="294"><p align="center"><input type="reset" value="Reset" name="B2"></p></td>
<td width="275"><p align="right"><input type="submit" value="Save" name="B3"></p></td>
</tr>
</table>
</form>
<p>
Related files detected in <a href="SpamConfig.asp"><%=dirspam & filespam%></a>.
</p>
<ul>
<%
'read default spamfilter.ini settings if needed for linksfile
if fileedit <> filespam then
if fs.FileExists(dirspam & filespam) then
set FName=fs.OpenTextFile(dirspam & filespam,1, False , -2)
Contents = FName.ReadAll
FName.Close
else
response.write("SpamFilter.ini missing:" & dirspam & fileedit)
response.end
end if
end if
' parse spamfilter.ini to scan for any filename= and provide links to edit them
strContents = contents
intFN = instr(strContents,"FileName=")
while (intFN>1)
intStart=1
for intI=intFN to 1 step -1
if mid(strContents,intI,2)=vbcrlf then
intStart=intI+2
intI=0
end if
next
intEnd = instr(intFN,strContents,vbcrlf)
strDesc = mid(strContents, intStart, intFN - intStart + 9)
strName = mid(strContents,intFN + 9, intEnd - intFN - 9)
strLink = strName
'remove any pathing, to only allow editing in defined spam filter directory
for intI=len(strName) to 1 step -1
if mid(strName,intI,1)="\" then
strLink = mid(strName,intI+1,len(strName)-IntI)
intI=0
end if
next
if strname <>"" then
%>
<li> <%=strDesc%><a href="SpamConfig.asp?file=<%=strLink%>"><%=strNa me%></a></li>
<%
end if &nbs p; &nbs p;
strContents = mid(strContents,intEnd+1,65000)
intFN = instr(strContents,"FileName=")
wend
%>
</ul>
Backup File History
<ul>
<%
' Read any history log and display it
if fs.FileExists(dirbackup & fileedit & ".log") then
' read log file
set FName=fs.OpenTextFile(dirbackup & fileedit & ".log",1, False , -2)
logContents = FName.ReadAll
FName.Close
response.write(logContents)
end if
'cleanup file handles
set FName=nothing
set fs=nothing
%>
</ul>
</body>
</html>