Windows的免費hMailServer搭配SpamAssassin過濾垃圾郵件:安裝與設定
http://jdev.tw/blog/1677/hmailserver-with-spamassassin-sawin32
為了解決垃圾信泛濫的狀況,這兩天「跨界」測試了運行在Windows上的免費Mail server:hMailServer,它內建了與垃圾郵件過濾軟體SpamAssassin的連結,也能透過ClamWin來進行病毒掃描。這些軟體全部是自由使用的,不花一毛錢就能在Windows平台上建立電子郵件環境。不過,在SpamAssassin的使用上卻遭遇許多困難,網路上的資料泰半都是Linux的操作方法,教導Windows版本的資料非常稀少,或許本篇測試能為大家提供一些參考。
為了避免資料夾名稱問題造成狀況,建議將這些軟體都安裝在不含空白字元的資料夾裡,如c:\hMailServer、c:\SpamAssassin等。
下載並安裝
下載路徑如下,自行下載並依指示安裝。
設定hMailServer
hMailServer需要使用資料庫,預設是使用SQL Server Compact 3.5,若安裝的主機沒有安裝的話,hMailServer的安裝程式會自動下載並安裝。 簡述其他設定的幾個重點:
- 新增Domain,記得防火牆要開啟
- 新增Domain後,由其內的Accounts新增帳號,用其右鍵功能表的Add AD account就能匯入Windows AD帳號進來
- 點擊【Utilities→Diagnostics】並選擇Domain後測試,全部綠燈表示一切正常
- 為了方便觀察與除錯,將【Settings→Logging】裡的各式訊息等級都勾選,爾後就能在c:\hMailServer\Logs裡檢視Log檔
- 【Settings→Anti-spam】待SAwin32設置後再來設定
執行SAwin32的spamd
SAwin32裡我們主要用來處理過濾功能的是spamd.exe(Spam Daemon),spamd的參數不少,完整的指令可以參考spamassassin.apache.org上的說明。我們只使用兩參數:
- –syslog:將執行過程輸出到指定的Log檔
- -D:產生除錯訊息
c:\SpamAssassin\spamd --syslog="c:\SpamAssassin\spamd.log" -D
spamd.exe以背景方式執行,可透過工作管理員來終結它。執行的過程只能經由觀察spamd.log來確認。
設定hMailServer與SAwin32的連結
只要勾選【Settings→Anti-spam→SpamAssassin頁籤→Use SpamAssassin】就可以了,勾選後每個hMailServer收到的mail就會丟給spamd做運算與處理,當spamd計算某信件的分數超過5時,就判定為垃圾郵件,接著spamd在mail主旨開頭插入[SPAM]或**SPAM**等字串,再給你使用的mail client收信,我們只要再建立郵件規則來過濾主旨含有SPAM字串的信件,自動做刪除即可。當正確率到達較高的程度時,就可以考慮在Mail server上直接把垃圾郵件刪掉。
最後記得將【Settings→Anti-spam】裡的DNS blacklist與SURLBL Servers都Enable,這樣應該能過濾一大半的垃圾郵件。
如何讓SpamAssassin自動學習
SpamAssassin是使用貝氏運算來逐步增加垃圾郵件的判斷正確率,SA-learn.exe就是能用來學習的指令,我們以下列幾個步驟來達成自動學習的處理:
- 新增一個專門存放垃圾郵件的帳號,如spam@你的domain
- 變更mail client處理SPAM字串的規則,增加轉寄到 spam@你的domain 的處理,亦即當主旨帶有[SPAM]或**SPAM**時,除了刪除mail client收信匣裡的該信件外,同時轉寄給 spam 帳號
- hMailServer spam帳號的收件資料夾是c:\hMailServer\Data\你的Domain\spam\,每封存入的信件會產生成一組十六進位數字組成的檔名,並以數字開頭兩碼為子資料名,例如下圖是在08資料夾裡有兩個以{08開頭的垃圾郵件:
目錄: C:\hMailServer\Data\你的Domain\spam\08 2010/04/23 11:23p
. 2010/04/23 11:23p.. 2010/04/23 03:27p 7,382 {086300AB-29A4-45EF-B0DA-CD1CAE7016A5}.eml 2010/04/23 05:07p 7,748 {08D474C0-F05C-491C-8CC9-1ECB5EFCEA33}.eml 3 個檔案 15,130 位元組 2 個目錄 17,234,300,928 位元組可用
- 將所有c:\hMailServer\Data\你的Domain\spam\裡的資料夾寫入c:\SpamAssassin\spam-dir.lst,例如:
c:\hMailServer\Data\你的Domain\spam\08
c:\hMailServer\Data\你的Domain\spam\2A
c:\hMailServer\Data\你的Domain\spam\2C
...
c:\hMailServer\Data\你的Domain\spam\FE
c:\hMailServer\spam-dirspam-dir.lst的最後一行c:\hMailServer\spam-dir是存放垃圾郵件檔案(*.eml)的資料夾,系統管理人員也可以把垃圾信存成.eml放入這個資料夾讓SA-learn.exe來讀取。
將以下指令存成learn-spam.bat:
@echo off
echo start %DATE% %TIME% > learn-spam.log
c:\SpamAssassin\sa-learn.exe --spam --folders="c:\SpamAssassin\spam-dir.lst" >> learn-spam.log
echo end %DATE% %TIME% >> learn-spam.log執行sa-learn.exe時會讀取列在spam-dir.lst裡的每個資料夾裡的每封信件,解析、記錄這些垃圾郵件的特徵。
- 另外也新增 nospam@你的Domain 帳號,用來存放誤放到 spam 的信件,也建立nospam-dir.lst與nospam-dir資料夾,最後同樣建立批次檔learn-nospam.bat,讓sa-learn.exe學習這些是非垃圾信:
@echo off
echo start %DATE% %TIME% > learn-nospam.log
c:\SpamAssassin\sa-learn.exe --ham --folders="c:\SpamAssassin\nospam-dir.lst" >> learn-ham.log
echo end %DATE% %TIME% >> learn-ham.log - 將上述的learn-spam.bat與learn-nospam.bat加到「控制台→排定的工作」裡,設定排程以自動執行,例如可以設定每兩個小時分別執行學習一次。
嗯,就這樣先運行看看,看執行狀況以後再持續報導吧。
Windows的免費hMailServer搭配SpamAssassin過濾垃圾郵件:安裝與設定的更多相关文章
- [Xamarin.Android] 如何透過電子郵件部署Xamarin.Android App (转帖)
Android App在部署到實機的時候不像iOS的App限制你一定要使用向Apple申請的開發者憑證,在Apple不管是你要上架到Apple Store或者是企業內部署,你都必須向蘋果申請憑證. 而 ...
- Windows安裝PHP環境
Windows安裝PHP環境的準備工作:httpd-2.2+php-5.4+mysql-5.5 第一步是安裝相對應的三個軟件,只要略懂一些英文單詞,安裝是沒有問題的,所以此處略過三個文件的安裝過程,直 ...
- 如何在 Windows 7 安裝 SharePoint Server 2010
转:http://support.microsoft.com/kb/2683572/zh-tw 關於作者: 本文由微軟最有價值專家 MVP 歐志信 提供.微軟十分感謝 MVP 主動地將他們的經驗與上百 ...
- 免費域名申請.me .im .in .co .la .do .ms .kz .tk .ru .mu .pn .tt
免費申請域名 .la .la 域名 – 原先是ICANN分配給老撾的國家頂級域名,不過後來被同時作為了美國洛杉矶市的域名後綴. 免費申請地址: http://www.idv.la http://www ...
- windows(xshell)免密码登录
windows(xshell)免密码登录 第一步生成密钥文件 打开xshell 选个工具栏的工具如下图 选择密钥类型和长度,如下图 密钥会自动生成,如下图,点击下一步即可 设置给密钥加密的密码也可以不 ...
- 免費查看SQL PLAN的工具 - SQL Sentry Plan Explorer
今天 Terry大 介紹給小弟這個 SQL Sentry Plan Explorer 工具,可以用來看SQL Plan. 什麼? 用SSMS看不就很清楚了嗎? 這個Tool有把SQL Plan幫我們整 ...
- SMINT:单页网站的免費jQuery插件
最近为了做一个静态网页版的数据报告,不希望花很多时间去设计网页,或者花时间去调整布局,于是找到了一个名为Smint的免費jQuery插件.几乎不需要写什么代码就可以完成一个一页式网站.这非常适合用来制 ...
- windows版本免安装redis, nginx, zookeeper
redis官网:https://redis.io/ windows版本免安装redis下载链接:https://github.com/MSOpenTech/redis/releases nginx官网 ...
- Jexus 強勁、堅固、免費、易用的Linux ASP.NET服務器
Jexus 強勁.堅固.免費.易用的Linux ASP.NET服務器 Jexus是一款Linux平台上的高性能WEB服务器和负载均衡网关,以支持ASP.NET.ASP.NET CORE.PHP为特色, ...
随机推荐
- Java实现平衡二叉树(AVLTree)的构建
近期在学习数据结构上关于平衡二叉树的知识,看了严老师的思路,感觉用java写出递归的构建方式有点困难,由于当中的递归须要把引用传进去,所以感觉是要实现起来比較麻烦,所以就首先想到使用非递归的方式来实现 ...
- 观察者模式-Observer
观察者模式很好理解,简单来说就是:当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化!对象之间是一种一对多的关系. 1. 自己手工创建Observer模式 首先,创建观察者接口: pub ...
- MySQL日志概述
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3859866.html ...
- ES6数组去重
今天五一,在出去玩之前赶紧写篇博客,时刻不要忘记学习^_^!! 提到数组去重,想必大家都不陌生,会的同学可能噼里啪啦写出好几个,下面来看看之前常见的去重代码: 'use strict'; var ar ...
- Http,Https (SSL)的Url绝对路径,相对路径解决方案Security Switch 4.2 英文帮助文档 分类: ASP.NET 2014-10-28 10:50 147人阅读 评论(1) 收藏
Security Switch 4.2 =================== Security Switch enables various ASP.NET applications to auto ...
- Wpf 鼠标拖动元素实例
1.Wpf中鼠标捕获和释放 //以矩形为例 //创建鼠标捕获 Mouse.Capture(rectOne); //释放鼠标捕获 rectOne.ReleaseMouseCapture(); 2.Wpf ...
- 2017JAVA必读书籍
1.深入理解Java虚拟机:JVM高级特性与最佳实践 2.Oracle查询优化改写技巧与案例 3.Effective Java 4.Spring3.x企业应用开发实战 5.Spring技术内幕:深入解 ...
- 关于SQL IO的一些资料
前些天在做优化的时候发现一个有意思的现象,单纯的SQL执行很快,秒级返回,但是页面响应却很慢,一直在想这是为什么呢?有点怀疑服务器的IO有问题,想了想做了个实验,模拟了同样的场景,通过优化SQL将 ...
- 用sed、awk、grep同时匹配多个条件(与模式、或模式)
同时匹配ABC 和 123:sed -n '/ABC/{/123/p}' awk '/ABC/&&/123/{ print $0 }' grep -E '(ABC.*123|123.* ...
- asp.net 在线人数统计\页面访问量
1.新建网站,添加几个窗体.webForm1.aspx ,ViewStateForm.aspx 2.在网站的根目录下添加全局应用程序类“Global.aspx” .(重要) 3.在“Global.as ...